2
以下は、ディスカッション中に私の友人の一人から提起された質問ですが、私たちはどちらも実際の答えが分かりませんでした。私たちは、memory area
は(を含むクラスに関連するすべてのデータを保持していることを知っているオブジェクトはどこにJavaで作成されるのですか
public class Test {
static int i = 5;
static String str = "Welcome";
static Map<String, String> map = new HashMap<>();
}
、それを作成しない
- Inside memory/metadata area
- Inside heap area
静的参照)、heap area
はクラスのすべてのインスタンス変数を保持します。
しかし
- int variable is created(We assume that it will be created in method area
- Not sure about the other two object(String and HashMap)
上記のクラスのために、我々は何かを誤解し、これらの変数は、Oracle JVMのJava
すべてのオブジェクトは、指定したとおりにヒープ上に作成されます。 –
* 1 mistake *:静的フィールドは、クラスのロード時に初期化されます。 –