当栈内存中指向堆中的地址发生了改变的现象我们称之为引用改变,下面观察引用改变。
package com.bai.demo;
public class Hello {
public static void main(String[] args) {
//创建一个Person类对象
Person per1= new Person();
per1.name="范统";
per1.age=18;
per1.height=130;
per1.weight=100;
//创建第二个对象
Person per2=new Person();
per2.name="范建";
per2.age=17;
per2.height=170;
per2.weight=60;
//请观察
per1=per2;
System.out.println("名字:"+per1.name+"年龄:"+per1.age);
}
}
结果
名字:范建年龄:17
per1=per2相当于为per1重新赋值。
总结
1.对象的创建需要在堆内存中开辟空间保存对象本身信息,还需要再栈内存中开辟空间保存对象的地址信息
2.当一块空间失去了栈内存的指向之后就会变成垃圾,变成垃圾之后就等着GC线程来回收。