Java 最后一个变量指向一个实例。实例是否可以变为空?
最后一个变量指向一个实例。我想看看如果我将对象的引用更改为null会发生什么。我很惊讶,没有例外,也没有空打印出来。这就好像代码a的行=null;已经被忽略了 输出: 我的名字?哈哈Java 最后一个变量指向一个实例。实例是否可以变为空?,java,Java,最后一个变量指向一个实例。我想看看如果我将对象的引用更改为null会发生什么。我很惊讶,没有例外,也没有空打印出来。这就好像代码a的行=null;已经被忽略了 输出: 我的名字?哈哈 你改变了a的意思,当然。但是myFoo仍然引用了一个实例 没有例外,因为最终变量myFoo仍然引用InnerFoohaha,即使引用a指向null。例如:首先变量a引用InnerFoohaha。然后,变量myFoo使用引用“a”引用同一实例InnerFoo'haha。当引用“a”指定null时;myFoo仍然是对I
你改变了a的意思,当然。但是myFoo仍然引用了一个实例 没有例外,因为最终变量myFoo仍然引用InnerFoohaha,即使引用a指向null。例如:首先变量a引用InnerFoohaha。然后,变量myFoo使用引用“a”引用同一实例InnerFoo'haha。当引用“a”指定null时;myFoo仍然是对InnerFoo'haha'的引用。请研究对象引用是如何工作的。您没有更改myFoo引用的内容,您只更改了a引用的内容。既然你在那之后没有提到a,那就没有效果了。这和期末考试无关。对象a=新对象;对象b=a;a=零;System.out.printlnb==null;。
public class TryJava {
class InnerFoo {
public InnerFoo(String name) {
super();
this.myName = name;
}
String myName;
boolean isStarted;
}
InnerFoo a = new InnerFoo("haha");
final InnerFoo myFoo = a;
void bar() {
a = null; // IGNORED???
System.out.println("myFoo.name? " + (myFoo != null ? myFoo.myName : " is null "));
}
public static void main(String[] args) {
TryJava tj = new TryJava();
tj.bar();
}
}