拿楼主的举例,有一个Person.java类。首先Person p=new Person();Person p1;
Person p2=new Person();
分析p p1 p2在栈内存和堆内存。栈内存中有3个,分别是p p1 p2,堆内存中有2个p p2。
因为p1没有通过new来创建实例,所以只在栈内存存在。这时是p指向p的堆内存,p2指向p2的堆内存。现在p1 = p或者p2 = p;这样操作之后只是把指向改变了(p p1 p2都指向了p的堆内存),其余没变。这时堆内存中p2就变成了垃圾内存了。
。
http://www.softpeixun.com/linux/956.html