Java 为什么在创建对象并将其分配给变量后,此对象引用变量为null?

Java 为什么在创建对象并将其分配给变量后,此对象引用变量为null?,java,Java,我刚刚开始学习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 D

我刚刚开始学习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();

}

}
据我所知,该方法创建一个新对象,并将其分配给传递给它的引用变量。 为什么调用该方法后仍打印null? 谢谢你的回答。

用这种方法

public static void m1(Date date) {

    date = new Date();

}
实际上,您并没有更改日期的实际值
date
只是复制到方法中的局部变量。当
m1
退出时,
date
失去作用域并被销毁。您尚未对其进行任何真正的更改(例如,传入的参数)