注:图片摘自《深入理解java虚拟机》一书,文字为本人阅读此书后的总结。
1.程序计数器
指向当前线程正在执行的字节码指令的地址(行号)。
2.虚拟机栈
用于存储当前线程运行方法时所需要的数据丶指令丶返回地址。
3.本地方法栈
存储当前线程运行方法时所需要的本地数据丶指令丶返回地址
4.方法区
用于存储类信息,常量,静态变量。
5.运行时常量池
用于编译期生成的各种字面量和符号引用。
6.直接内存
直接内存就是物理机的实际内存,基于通道及缓冲的I/O方式,使用本地方法库直接分配堆外内存,通过存储在java堆中的DirectByteBuffer作为这块内存的引用进行操作。