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