【发布时间】:2015-01-30 06:48:13
【问题描述】:
public class Foo {
public static void change(int[] arr){
arr = null;
}
public static void change2(int[] arr){
arr[0] = 99;
}
public static void main (String[] args){
int[] arr = {1,2,3,4,5};
change(arr);
System.out.println("it should null: "+Arrays.toString(arr));
change2(arr);
System.out.println("updated array : "+Arrays.toString(arr));
} }
控制台输出
it should null: [1, 2, 3, 4, 5]
updated array: [99, 2, 3, 4, 5]
当我将 int[] 传递给第一种方法时,我需要了解按引用传递,即 change() 它不会使数组为空,根据我的理解,它应该更改为 NULL 作为数组引用通过引用传递,但如果我将数组传递给第二种方法,即 change2() 它会更改特定索引处的值。这意味着正在传递引用。
【问题讨论】:
标签: java arrays oop parameter-passing pass-by-reference