Java虚拟机中的内存模型
时间:2021-11-19

前言

●了解Java中的对象、变量等内存区域非常重要。

●本文将全面解释Java虚拟机中的内存模型&分区,希望您喜欢。

Java虚拟机中的内存模型

示意图

目录

Java虚拟机中的内存模型

示意图

1.内存模型&分区。

●Java虚拟机在运行Java程序时会管理一个内存区域:运行时的数据区。

●在运行过程中,数据区用途进行划分:

Java虚拟机栈(栈区)

本地方法栈

Java堆(堆区)

方法区

程序计数器

Java虚拟机中的内存模型

●下面,我将详细介绍每个内存模型的分区。

2.Java堆。

●示意图


Java虚拟机中的内存模型

示意图

●简介


Java虚拟机中的内存模型

示意图

垃圾回收的解释将在下一篇文章中解释。

3.Java虚拟机栈。

●示意图


Java虚拟机中的内存模型

示意图

●简介


Java虚拟机中的内存模型

示意图

4.本地方法栈。

●示意图

Java虚拟机中的内存模型

示意图

●简介

Java虚拟机栈与Java虚拟机的区别在于:服务对象,即。

Java虚拟机栈服务于执行Java方法;本地方法栈服务于执行Native方法。

5.方法区

●示意图

Java虚拟机中的内存模型

示意图

●简介

Java虚拟机中的内存模型

示意图

●注

内部包含运行时常量池,具体介绍如下:

Java虚拟机中的内存模型

示意图

6.程序计数器。

●示意图

Java虚拟机中的内存模型

示意图

●简介

Java虚拟机中的内存模型

示意图

附加知识:直接内存。

●定义:基于通道和缓冲区的I/O在NIO类(JDK1.4引入)中使用Native函数库直接分配的堆外内存。

●特点:不受堆放大小的限制。

不属于虚拟机运行时数据区的一部分&不在堆中分配。

●应用场景:适用于频繁调用的场景。

通过存储在Java堆中的DirectBytebufer对象作为该内存的引用,避免在Java堆和Native堆之间来回复制数据,提高使用性能。

●抛出异常:outofmemoryerror,即与其他内存区域的总和大于物理内存限制。

8.总结

本文全面阐述了JVM中的内存模型&分区,总结如下。

Java虚拟机中的内存模型

标签: 简介服务对象