diff --git a/JVM/1. 内存.md b/JVM/1. 内存.md new file mode 100644 index 0000000..deda13e --- /dev/null +++ b/JVM/1. 内存.md @@ -0,0 +1,46 @@ +# 内存 + +![JVM](https://raw.githubusercontent.com/2311719626/NoteBook/main/img/3-1.png) + +## 直接内存 + +不受 JVM 堆管理的内存区域,通常与 NIO 有关,能够直接与操作系统内存进行交互,减少内存拷贝的开销 + +## 运行时数据区 + +### 线程私有 + +**程序计数器** + +- 选取下一条需要执行的字节码指令 + + +**虚拟机栈** + +- 方法调用的数据需要通过栈进行传递 +- 每一次方法调用后就会有一个对应的栈帧被压入栈中,当方法调用结束后弹出 + +*栈帧结构* +- 局部变量表 +- 操作数栈 +- 动态链接 +- 方法返回地址 + +**本地方法栈** + +- 执行 `Native` 方法 + +### 线程共享 + +**堆** + +> Java 堆是垃圾收集器管理的主要区域,因此也被称作 `GC 堆`。 + +**方法区** + +- 类信息 +- 字段信息 +- 方法信息 +- 常量 +- 静态变量 +- ... \ No newline at end of file diff --git a/img/3-1.png b/img/3-1.png new file mode 100644 index 0000000..1002d72 Binary files /dev/null and b/img/3-1.png differ