一、什么是堆内存?
Java中的堆是Java虚拟机管理的一块最大的内存空间,用于存储Java程序中实例化的对象,它可以被划分为两个部分:新生代(Young)和老年代(Old),而新生代(Young)又可以在被划分为Eden、From survive 和To survive三个部分。
从JDK8开始,Metaspace(元空间)替代了永久代,如下图所示 :
二、Java堆中的各个区域
无论哪个版本的JDK,其堆内存的划分都没有变化,下面详述Java堆中各个区域:
1、堆大小 = 新生代( Young ) + 老年代( Old ),其可以通过参数 –Xms、-Xmx 来指定:–Xms用于设置初始分配大小,默认为物理内存的1/16;-Xmx用于设置最大分配内存,默认为物理内存的1/4。默认情况下,新生代</