Java笔记-虚拟机

一、虚拟机内存

1.虚拟机内存可以简单的分为三个区域:虚拟机栈stack、堆heap、方法区method area。

2.栈:存储栈帧(方法),先进先出,储存地址指向堆

3.堆:存储对象。调用类信息

4.方法区存储加载的类的信息(类、常量信息)。

5.Jvm垃圾回收机制:

年轻代:(Eden区内存满后清理,然后把剩下的存放到Survivor1区中,1区内存满后放入2区,2区满后再放入1区反复15次存放到年老区)

Eden区:                

Survivor1区:

Survivor2区:

 垃圾回收器:Minor GC 

年老代:年老代对象越来越多,我们就需要启动Major GC和Full(全量回收),

Tenured/Old空间:

垃圾回收器:Major GC

Full(全量回收):来一次大扫除,全面清理年轻代区域和年老代区域。

永久代:用于存放静态文件,如Java类、方法等。持久代对垃圾回收没有显著影响。JDK7以前就是“方法区”的一种实现。JDK8以后已经没有“永久代”了,使用metaspace元数据空间和堆代替。

原文地址:https://www.cnblogs.com/baisha/p/15399181.html