JVM 运行时数据区与指令c++
PC:program counter:程序计数器app
Method Area:方法区:逻辑概念,1.7以前指的PermSapce(永久区)1.8以后的MetaSapce(原数据区)jvm
Native Method astacks:由c++等编辑的本地方法,通常无法进行调优ide
Heap:堆内存:调优重点spa
Run-time constant pool :运行时常量池。线程
Direct Memory:直接内存区,NIO提升效率实现zero copy的区域,让jvm能够直接访问内核空间的内存(OS管理的内存)orm
以下图:每一个线程都有PC VMS(栈) NMS(方法区) 对象
每一个方法都有本身的栈帧blog
Local Variables:本地变量表:变量名称图片
Orerand Stacks:操做数栈:堆内存的引用
Dynamic Linking 动态连接:其余对象引用
如何证实1.7 字符串常量位于Perm,1.8位于堆内存?
回答:结合GC,一直建立字符串常量,观察堆和matespace