JVM 1.元空间

本文介绍了JVM的元空间,它是JDK1.8中取代永久代的方法区实现。元空间主要存放类信息、常量和静态变量,其大小可通过MetaspaceSize和MaxMetaspaceSize参数进行调整。当类数量过多,如使用动态代理框架时,可能导致元空间溢出。为了避免这种情况,可以设置MaxMetaspaceSize限制其最大值。
摘要由CSDN通过智能技术生成

JVM 1.元空间溢出

### [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N6oaCcNy-1640136542561)(C:\Users\55488\AppData\Roaming\Typora\typora-user-images\image-20211221220843916.png)]

1.元空间是什么?

从永久代到元空间(Metaspace)
  • 方法区(PermGen) :方法区是一个逻辑上的概念,永久代和元空间是方法区的两种物理上的实现方法。
  1. JDK1.8以前的HotSpot JVM方法区,使用**永久代(permanent generation)**来实现。
  2. 方法区用于存放已被虚拟机加载的类信息、常量、静态变量,即编译器编译后的代码
  3. 方法区是一片连续的堆空间,通过**-XX:MaxPermSize来设定永久代最大可分配空间,当JVM加载的类信息容量超过了这个值,会报OOM:PermGen**错误。
  4. 永久代的GC是和老年代(old generation)捆绑在一起的,无论谁满了,都会触发永久代和老年代的垃圾收集。
  5. JDK1.7开始了方法区的搬迁:符号引用(Symbols)移至native heap
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值