public class Test{
private static Staff staff = new Staff();
private static String str = "a";
}
如上,Test对象的staff成员是存放在哪的呢?
public class Test{
private static Staff staff = new Staff();
private static String str = "a";
}
如上,Test对象的staff成员是存放在哪的呢?
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
根据 JVM 规范,JVM 内存共分为 虚拟机栈、堆、方法区、程序计数器、本地方法栈 五个部分。
Java7 之前,类的静态变量(简称类变量,比如你写的 staff)存放在 永久代(PermGen)—— 在 Hotspot JVM 上,PermGen 就是方法区;Java7 之后,将类变量的存储转移到了 堆。
关于 JVM 内存模型的更多细节,可以参考 周志明 的《深入理解Java虚拟机 第二版》