JVM方法区

1、堆栈方法区的关系
在这里插入图片描述
创建对象Person类(对象数据类型)放在方法区,对象实例数据放在堆中
方法区可以看做是独立于java堆的内存空间

2.2、 方法区的基本理解
(1)方法区和堆一样,是各个线程共享的内存区域
(2)方法区在JVM启动的时候就被创建,但实际物理地址和堆一样都是不连续的。
(3)方法区的大小,和堆空间一样,可以固定大小和扩展。
(4)方法区的大小决定了系统了可以保存多少个类,如果系统定义了太多的类,导致方法区溢出,虚拟机同样会抛出内存溢出错误。java.lang.OutOfMemoryError: PermGen space 或者java.lang.OutOfMemoryError: Metaspace 这个是JDK1.8的元空间
还有加载了过多的jar包,或者Tomcat部署了太多的工程,大量动态的生成反射类
(5)关闭JVM会释放这个区域的内存。

2.3、HotSpot中方法区的演进
在JDK7之前,习惯把方法区称为永久代,JDK8之后,称为元空间,但这么讲是在Hotspot中
在JDK8之后,彻底抛弃了永久代的说法,永久代和元空间的主要区别是,元空间不在虚拟机设置的内存中,而是在使用本地内存。如果无法满足新的内存分配需求的话,也会报OOM的错误。

3.1、设

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值