美文网首页
方法区和永久代是、元数据空间是啥关系

方法区和永久代是、元数据空间是啥关系

作者: salix_ | 来源:发表于2020-04-01 17:37 被阅读0次
一:刚开始学习JVM的时候,看的是深入理解JVM那本书,里面讲JVM里存在方法区,方法区里面还有运行时常量池。然后又看到网上说运行时常量池又从方法区移出来了,方法区改名叫什么元空间?我很迷。
二:后来我才知道,方法区只是规范,对于虚拟机的规范。所有的虚拟机应该有方法区,不同虚拟机方法区的叫法不一样

《Java虚拟机规范》只是规定了有方法区这么个概念和它的作用,并没有规定如何去实现它。那么,在不同的 JVM 上方法区的实现肯定是不同的了。 同时大多数用的JVM都是Sun公司的HotSpot。在HotSpot上把GC分代收集扩展至方法区,或者说使用永久代来实现方法区。

在1.7之前在(JDK1.2 ~ JDK6)的实现中,HotSpot 使用永久代实现方法区,HotSpot 使用 GC分代来实现方法区内存回收。

对于Java8, HotSpots取消了永久代,那么是不是也就没有方法区了呢?当然不是,方法区是一个规范,规范没变,它就一直在。那么取代永久代的就是元空间。它可永久代有什么不同的?存储位置不同,永久代物理是是堆的一部分,和新生代,老年代地址是连续的,而元空间属于本地内存;存储内容不同,元空间存储类的元信息,静态变量和常量池等并入堆中。相当于永久代的数据被分到了堆和元空间中。

相关文章

  • 方法区和永久代是、元数据空间是啥关系

    一:刚开始学习JVM的时候,看的是深入理解JVM那本书,里面讲JVM里存在方法区,方法区里面还有运行时常量池。然后...

  • JVM

    1.8同1.7比,最大的差别就是:元数据区取代了永久代。元空间的本质和永久代类似,都是对JVM规范中方法区的实现。...

  • 元空间

    解释 元空间是jdk1.8之后出现的,之前叫永久代 元空间就是方法区,方法区是JVM的规范,元空间是HotSpot...

  • 常用基础参数元空间MetaspaceSize讲解

    -XX:MetaspaceSize 设置元空间大小元空间的本质和永久代类似,都是对JVM规范中方法区的实现。不过元...

  • [jvm]方法区,永久代和元空间

    1.方法区 说到方法区肯定需要了解《Java虚拟机规范》中对内存管理的划分。如图所示 这是《规范》中对内存的具体划...

  • java8内存结构变化

    java8移除了永久代,增加了元空间。1)java7以前的版本Hotspot的方法区位于永久代,并且永久代和堆是互...

  • jvm内存模型

    一、内存区域 堆 直接内存 方法区1.8之前实现是永久代,在堆中。1.8之后改成了元数据空间,放到了直接内存。运行...

  • 永久代、栈内存大小怎么设置

    永久代和栈内存大小一般较为固定 永久代(元数据区)也就存放类的元数据 一般512m就够了-XX:MaxMetasp...

  • 【JVM】答疑

    方法区和永久代什么区别?方法区是 JVM 的规范,而永久代则是 JVM 规范的一种实现。只有 HotSpot 才有...

  • Java虚拟机

    一.基础: 1)什么是java虚拟机、工作模式(2、区别) 2)基本结构(9) a)方法区(永久区、元数据区):存...

网友评论

      本文标题:方法区和永久代是、元数据空间是啥关系

      本文链接:https://www.haomeiwen.com/subject/btfvkhtx.html