关于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博客

 

posted @ 2022-06-01 14:37  信铁寒胜  阅读(29)  评论(0)    收藏  举报