ポインタの話と同様、
void foo(int[] hoge) { hoge = new int[10]; }
で
int[] data = new int[5];
foo(data);
とやっても data が参照してるのは new int[5] のままであって new int[10] ではない。
Java の引数が本当に参照渡しなら、data は new int[10] を指すようになる。