長さ 0 の配列

int [] a = new int[0];

とすると長さ 0 の配列が生成される。長さが 0 なので、もちろん a[0] などにアクセスしようとすると ArrayIndexOutOfBoundsException になるが、Object としては null ではないので NullPointerException にはならない。実際 a.length はちゃんと 0 を返す。当然だが後から a に何かしらの配列を代入することができるので、長さがいくつになるか分からない配列を受け取る変数を初期化しつつ NullPointerException を避ける方法としてはアリかな。