1

私の質問、またはむしろ質問は次のとおりです。

1)静的変数はどこにありますか。いくつかの記事は、それらがヒープ上にあると述べているものもあれば、クラス属性であるため、クラス定義を使用してpermgen領域にあると述べているものもあります。2番目のオプションはクラス属性であるため、正しい可能性があることを理解しています。
2)最終変数はどこにあり、次の場合はその寿命はどうなりますか?a)プリミティブ型のインスタンス変数b)プリミティブ型のメソッドのローカル変数c)参照型のインスタンス変数b)ローカルタイプ参照のメソッドの変数
3)ローカルの場合、参照ローカル変数はどこに格納されますか。
4)配列の場合、インスタンス変数またはローカルスレッド変数であるため、メモリ割り当てに違いがあります。

ありがとう

4

1 に答える 1

3

Where does the static variable reside

-静的変数はに存在しMethod Area、permgenはメソッド領域内にあります。

Where does the final variable reside and what is its life if
Its an instance variable of type primitive

-そのインスタンス変数の場合、それはHeap inside the Objectそれが属するオブジェクトにとどまり、それを保持するオブジェクトへの参照がないため、スコープから外れます。

Its a local variable of a method of type primitive

-スタックにとどまり、中括弧を閉じるメソッドに到達すると、スコープから外れます...

Its an instance variable of type reference

-Heap inside the Objectそれはそれが属するオブジェクトにとどまり、それを保持するオブジェクトへの参照がないため、スコープから外れます。

Its a local variable of a method of type reference

-スタックにとどまり、中括弧を閉じるメソッドに到達すると、スコープから外れます...

Where are the reference local variables stored if they are local.

-スタック上...

In case of arrays is there any difference in memory allocation as in they are instance variable or local thread variable.

-配列は格納されているオブジェクトHeapですが、Java 6u23バージョンからEscape Analysis、JVMがオブジェクトがメソッドをエスケープできないと判断した場合、スレッドにオブジェクトを作成しようとします。スタック、ヒープ上ではありません...。

于 2012-09-06T18:37:41.647 に答える