1.内存模型 & 分区
Java虚拟机在运行Java程序时,在运行时数据区里,会根据用途进行划分:
下面详细介绍每个内存模型分区
2.Java堆
3. Java虚拟机栈
4. 本地方法栈
简介:十分类似Java虚拟机栈,与Java虚拟机区别在于:服务对象,即Java虚拟机栈为执行 Java 方法服务;本地方法栈为执行 Native方法服务
5.方法区
注:其内部包含一个运行时常量池,具体介绍如下:
6.程序计数器
7. 额外知识:直接内存
定义:NIO类中基于通道和缓冲区的I/O方式 ,是通过使用Native函数库直接分配的堆外内存,不受大小限制,不是虚拟机运行时数据区的一部分,并且不在堆中分配,适用于多次调用的情况,可以避免在 Java 堆和 Native堆之间来回复制数据,提高抛出的异常的使用性能,其他内存区域的总和也大于物理内存限制。