class Test
{
int y=10; // defined as part of the class
Test obj1 =new Test();
public void function1(){
int x = 5; // defined locally
Test obj2=new Test();
}
public static void main(String[] args)
{
Test obj = new Test();
}
}
私たちはすでにvaribale "y"がgonヒープになり、変数xがスタックになることを知っていますが、私の質問はどこにありますか?テストクラスへの参照はsvedされますか?ヒープやスタックに? 参照変数 "obj1"と "obj2"はスタックまたはヒープにどこに保存されますか?もちろん、オブジェクトはヒープになりますが、関数内で宣言されたときには参照変数はスタックになりますが、関数の外に宣言されたときはどうなりますか?混乱します。メソッドの外側に宣言されたJava参照変数は、スタックまたはヒープ上にあります。
オブジェクトがスタックにあります。実際のテストオブジェクトはヒープになります。メソッド内で作成された参照はすべてスタックに移動します。 – TheLostMind
@ TheLostMindどのようなメソッドの外に宣言されたobj1 sirについても、オブジェクトと一緒に参照変数obj1をヒープにする必要はありませんか? –
私はDVDはしませんでしたが、私の印象は、Java言語仕様のいくつかの調査で簡単に答えられるタイプの質問であるということです。学習モードに入っているので、その優秀な文書の組織に慣れ始めると、将来の参考文献を探す場所を知ることができます。これはあなたの基本的な教育の一部です。ここで質問する前に、少なくともあなたはそれに努力をしてください。 –