将在java中创建对象的位置

时间:2017-08-04 16:14:36

标签: java java-8 heap-memory

以下是我的一位朋友在讨论中提出的问题,但我们俩都不知道实际答案是什么。

+

在目标代码中,当创建JVM实例并创建所有三个对象时,它在哪里创建它

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 包含与类相关的所有数据(包括静态引用),memory area包含类的所有实例变量。

但对于上面的课程

heap area

如果我们误解了任何内容并帮助我们理解这些变量将如何存储在java中,请纠正我们

1 个答案:

答案 0 :(得分:1)

对于Oracle JVM,每个类都有一个特殊对象来保存它的静态字段。如果进行堆转储,则可以看到此特殊对象。

注意:没有规定静态成员的存储位置,因此它可以基于JVM。