为了账号安全,请及时绑定邮箱和手机立即绑定

请问类的静态成员对象存放在方法区?还是堆?

请问类的静态成员对象存放在方法区?还是堆?

蛊毒传说 2019-02-19 13:25:09
public class Test{ private static Staff staff = new Staff(); private static String str = "a"; } 如上,Test对象的staff成员是存放在哪的呢?
查看完整描述

2 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

根据 JVM 规范,JVM 内存共分为 虚拟机栈方法区程序计数器本地方法栈 五个部分。

Java7 之前,类的静态变量(简称类变量,比如你写的 staff)存放在 永久代(PermGen)—— 在 Hotspot JVM 上,PermGen 就是方法区;Java7 之后,将类变量的存储转移到了

关于 JVM 内存模型的更多细节,可以参考 周志明 的《深入理解Java虚拟机 第二版》

查看完整回答
反对 回复 2019-03-01
?
忽然笑

TA贡献1806条经验 获得超5个赞

使用new创建的对象都在heap里。

查看完整回答
反对 回复 2019-03-01
  • 2 回答
  • 0 关注
  • 2064 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信