JVM——方法区(永久代、元空间)

概述

方法区是一块独立于堆的内存空间,逻辑上属于堆的一部分。

  • 于堆空间一样,是各个线程共享的一个区域
  • 启动时由JVM创建,实际内存空间与堆一样,可以是不连续的物理内存空间
  • 方法区主要就是用来储存类信息,方法区的大小决定了可以保存多少个类。过多的类定义将会导致OOM(JDK之前是OOM:PermGen space,JDK之后是OOM:Metaspace,JDK7之前叫永久代,JDK8开始叫元空间)
    • JDK8之前的永久代使用的是运行时数据区的内存,所以容易OOM,JDK8开始使用本地内存,称之为元空间
  • 元空间使用的是本地内存,JDK8之前使用的是JVM的内存
  • JDK6静态变量存在于永久代中,JDK7后字符串常量池、静态变量从永久代移到了堆中
  • JDK8之后没有永久代,类信息、方法信息等保存在元空间MetaSpace,字符串常量池、静态变量仍然在堆中

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值