关于Java的引用传递的一种特别案例
public class Test1 {
public static void main(String[] args) {
Student student = null;
test(student);
if(student == null) {
System.out.println("学生对象为空!");
}else {
System.out.println("学生对象不为空!");
}
}
private static void test(Student student) {
student = new Student();
}
}
输出结果:

问题:原本我以为在test方法里面重新赋值对象,在main方法的里面的student也是有对象的。但是实际上会为空。
这部分内容设计到JAVA的方法区的知识。

从上图可知,main方法栈区的student变量,并不会指向堆区的对象
参考文章:
(3条消息) 传参接收对象取不到值_多图证明,Java到底是值传递还是引用传递?_d.Scorpio94的博客-CSDN博客

浙公网安备 33010602011771号