public class A extends B {
protected char x[] = new char[10];

protected void checkLength(int i) {
if (i >= x.length) {
char y[] = new char[x.length * 2];
System.arraycopy(x, 0, y, 0, x.length);
x = y; ←(ココ)
}
}

(↑アソコ)の配列(参照)の代入後に、
スコープの都合で y の実体がガベージコレクションの
対象になりそうですが、
実際には x は問題なく更新されます。

ナンデ?

(私には checkLength の処理後に配列 x がゴミを
 指してる方が理解しやすいのですが。。。   )