我看到很多关于什么是gc root的解释。我知道局部变量和params是gc root.But成员变量不是gc root?如果我在类主体中键入代码
Person p = new Person("Lily");
public void sayHello(){
System.out.println(p.name);
}
所以,p不是局部变量而是成员变量。如果p不是GC根,它可能是集合。并且在sayHello方法中会有零点异常。
答案 0 :(得分:0)
人p将是根对象。它将是分层的:
person
|
name
它也不会以空指针异常结束,因为你初始化了p然后你试图访问它的名字。
如果您将p定义为Person p = null
现在您尝试访问其中的名称System.out.println(p.name);