日期:2014-05-20  浏览次数:20652 次

java讨论题
package com;

class A{
public String test1;
}

class B{
public String test1;
}

public class C{
public static void main(String[]args){
 
A a =new A();
a.test1="test1";
 
B b=new B();
b.test1 = a.test1;
// 添加 该语句 看看 a.test1 = null; 
a=null;
 
System.out.println(b.test1);
 
}
}

执行A a=new A();时内存为a开辟了内存空间, 执行a.test1="test1";时a指向内容为“test1”  
同理b也指向了内容为“test1”,而且是独立与a的,所以当a置为空时,并不影响b的指向。即b.test1的值还是为test1。

如果消掉 // 添加 该语句 看看 这个b.test1的值还是test1,为什么?不是说字符串匿名对象不是独立于a对象的吗?然后是a对象中成员指向了它,应该这个字符串匿名对象的值该为null才对啊?

------解决方案--------------------
只不过是引用置为null而已 对象并没有null之说