>>18
> byte[][] getArrays() {
>   byte[] array1;
>   byte[] array2;
>   ・
>   ・
>   return new byte[][]{array1, array2};
> }
array1, array2 への代入を省略するな。

>   as[1] ← 上のarray1と中身が異なる
当然の結果だが、何かマズいのか?