1. 核心概述
1.1 堆概述
1.一个进程对应一个jvm实例,一个运行时数据区,又包含多个线程,这些线程共享了方法区和堆,每个线程包含了程序计数器、本地方法栈和虚拟机栈。
2.一个jvm实例只存在一个堆内存,堆也是java内存管理的核心区域
| 配置jvm及查看jvm进程
3.Java堆区在JVM启动的时候即被创建,其空间大小也就确定了。是JVM管理的最大一块内存空间
| 堆内存的大小是可以调节的
4.《Java虚拟机规范》规定,堆可以处于物理上不连续的内存空间中,但在逻辑上它应该被视为连续的
5.所有的线程共享Java堆,在这里还可以划分线程私有的缓冲区(TLAB:Thread Local Allocation Buffer)
| 堆空间一定是所有线程共享的么?不是,TLAB线程在堆中独有的
6.《Java虚拟机规范》中对java堆的描述是:所有的对象实例以及数组都应当在运行时分配在堆上。<