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才对啊?
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才对啊?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货