以下是我的一位朋友在讨论中提出的问题,但我们俩都不知道实际答案是什么。
+
在目标代码中,当创建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中,请纠正我们
答案 0 :(得分:1)
对于Oracle JVM,每个类都有一个特殊对象来保存它的静态字段。如果进行堆转储,则可以看到此特殊对象。
注意:没有规定静态成员的存储位置,因此它可以基于JVM。