虚拟机栈(线程私有)
堆(Heap线程共享)运行时数据区
方式区/永远代(线程共享)
java堆内存从GC的角度还可以细分为:新生代和老年月。下图为堆内存的划分
新生代: 用来存放新生的对象。一般占有堆的1/3的空间。因为频仍建立对象,所以新生代会频仍的触发minorGC进行垃圾收受接管。新生代又分为Eden 、Form
survivor、To survivor三个区
Eden 区:java新对象的出生地(若是新建立的对象占用内存很大,会直接分派到老年月)。当Eden 区内存不敷的时辰会触发Minor GC,对新生代进行一次垃圾收受接管。
Form survivor区 :上一次GC的幸存者,作为这一次GC的被扫描者。
To survivor区:保留了一次Minor GC过程中的幸存者。
老年月:本家儿要存放应用程序中生命周期长的内存对象。
元数据区(元空间):在JAVA8中,永远代已经被移除,被元空间所替代。元空间的素质和永远代相似,元空间和永远代之间的区别在于元空间不在虚拟机中,而是利用当地内存。是以,默认环境下,元空间的大小仅受当地内存限制。
类的元数据放入native memory,字符串池和类的静态变量放入java堆中,这样加载几多类的元数据就不再由MaxPermSize节制,而由系统的现实可用空间来节制。
0 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!