二 Java面试之JVM复习

衔接上篇 , 这篇继续介绍JVM的内存分布

二 Java面试之JVM复习

文章插图
方式/
1虚拟机栈(线程私有)
二 Java面试之JVM复习

文章插图

二 Java面试之JVM复习

文章插图

2堆(Heap线程共享)运行时数据区
二 Java面试之JVM复习

文章插图

3方式区/永远代(线程共享)
二 Java面试之JVM复习

文章插图

4java堆内存从GC的角度还可以细分为:新生代和老年月 。 下图为堆内存的划分
二 Java面试之JVM复习

文章插图

5新生代: 用来存放新生的对象 。 一般占有堆的1/3的空间 。 因为频仍建立对象 , 所以新生代会频仍的触发minorGC进行垃圾收受接管 。 新生代又分为Eden 、Form
survivor、To survivor三个区
Eden 区:java新对象的出生地(若是新建立的对象占用内存很大 , 会直接分派到老年月) 。 当Eden 区内存不敷的时辰会触发Minor GC , 对新生代进行一次垃圾收受接管 。
Form survivor区 :上一次GC的幸存者 , 作为这一次GC的被扫描者 。
To survivor区:保留了一次Minor GC过程中的幸存者 。
二 Java面试之JVM复习

文章插图

6老年月:本家儿要存放应用程序中生命周期长的内存对象 。
元数据区(元空间):在JAVA8中 , 永远代已经被移除 , 被元空间所替代 。 元空间的素质和永远代相似 , 元空间和永远代之间的区别在于元空间不在虚拟机中 , 而是利用当地内存 。 是以 , 默认环境下 , 元空间的大小仅受当地内存限制 。
【二 Java面试之JVM复习】类的元数据放入native memory , 字符串池和类的静态变量放入java堆中 , 这样加载几多类的元数据就不再由MaxPermSize节制 , 而由系统的现实可用空间来节制 。
二 Java面试之JVM复习

文章插图


以上内容就是二 Java面试之JVM复习的内容啦 , 希望对你有所帮助哦!

    推荐阅读