首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

java讨论题解决思路

2012-01-13 
java讨论题package comclass A{ public String test1}class B{ public String test1}public class C{ p

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之说

热点排行