gcルートとは何かについて多くの説明があります.ローカル変数とparamsがgcルートであることは知っています.しかし、メンバー変数はgcルートではありませんか? クラス本体にコードを入力すると
Person p = new Person("Lily");
public void sayHello(){
System.out.println(p.name);
}
したがって、p はローカル var ではなくメンバー var です。p が GC ルートでない場合は、コレクションである可能性があります。また、sayHello メソッドで null ポイント例外が発生します。