foo(v1,v2,v3);//呼び出し

foo(int a,int[] b,Integar c){
a = 5; // v1の値は変わらない
b[0] = 5; // v2[0]の値は変わる
b = new int[0]; // bはv2と違う参照先になる
b[0] = 6; // v2[0]の値は変わらない
c = new Integer(5); // cはv3と違う参照先になる
}


こうか?