【发布时间】:2012-09-25 21:25:31
【问题描述】:
我知道 Java 通过引用传递对象,所以当一个对象作为参数传递给一个方法时,在方法内部对参数进行的任何本地操作都会对实际对象进行。
void main(){
String[] array1 = {"a","b","c"};
someMethod(array1);
print(array1.length);
}
void someMethod(String[] array){
/..code here../
array = null;
}
我希望在尝试打印 array1.length 时得到一个空指针异常,因为我的方法将它设置为空。然而,这并没有发生。这是有原因的吗?
【问题讨论】:
-
Java 参数总是由 value 传递。该值可能是引用变量,但它始终是按值传递的。
-
java 传递引用的值,所以这个值指向引用。一旦我们改变了对象,那个对象就会改变。但是如果我们在 mwethod 内部重新初始化它,真实的对象不会改变
标签: java pointers methods reference