我刚开始学习Java。我正在读这本书:Java编程入门,综合版(第10版)。在第9章,有一个简单的程序:
import java.util.Date;
public class Test {
public static void main(String[] args) {
Date date = null;
m1(date);
System.out.println(date);
}
public static void m1(Date date) {
date = new Date();
}
}
据我所知,该方法创建了一个新对象,并将其分配给传递给它的引用变量。为什么它仍然打印空调用方法后?谢谢你的回答。
在这个方法中
public static void m1(Date date) {
date = new Date();
}
实际上并没有改变date
的实际值。date
只是复制到方法中的一个局部变量。当m1
退出时,date
失去作用范围并被破坏。您没有对其进行任何实际更改(例如,传入的参数)。