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