天天看点

JVM 运行时数据区与指令

PC:program counter:程序计数器

Method Area:方法区:逻辑概念,1.7之前指的PermSapce(永久区)1.8之后的MetaSapce(原数据区)

Native Method astacks:由c++等编辑的本地方法,一般没法进行调优

Heap:堆内存:调优重点

Run-time constant pool :运行时常量池。

Direct Memory:直接内存区,NIO提高效率实现zero copy的区域,让jvm可以直接访问内核空间的内存(OS管理的内存)

如下图:每个线程都有PC VMS(栈) NMS(方法区)

每个方法都有自己的栈帧

Local Variables:本地变量表:变量名称

Orerand Stacks:操作数栈:堆内存的引用

Dynamic Linking 动态链接:其他对象引用

如何证明1.7 字符串常量位于Perm,1.8位于堆内存?

回答:结合GC,一直创建字符串常量,观察堆和matespace