JVM——新生代 、老年代、永久区

新生区,老年区,元空间

新生区:新生区又分为Eden区,幸存区1,幸存区2,
Eden区:java新对象的出生地,当Eden区内存不够时会触发一次轻GC,对新生区进行一次垃圾回收;
幸存区1:上一次轻GC的幸存者,参加下一次轻GC
幸存区2:第二次轻GC的幸存者;

老年区:主要存放应用程序中生命周期长的内存对象,该对象是由新生区对象经过两次轻GC保存下来的生命周期长的内存对象,当存储空间不够时会进行一次重GC

永久区:

即方法区,之内存的永久保存区,保存类的信息,当Class被加载的时候会放到方法区,他和存放实列的区域不同,GC不会在主程序运行期对永久区进行清理,所以也就导致永久代区域会不断膨胀,最终抛出OOM异常;
元空间取代了dk8之前的永久区
元空间并不在虚拟机中,而是使用
本地内存。因此,默认情况下,元空间的大小仅受本地内存限制。类的元数据放入 native memory, 字符串池和类的静态变量放入 java 堆中,这样可以加载多少类的元数据就不再由 MaxPermSize 控制, 而由系统的实际可用空间来控制

你可能感兴趣的:(JVM,jvm)