途中藍色部分是各線程共享的數據區,其它結構是線程隔離的數據區。數組
Java虛擬機棧緩存
Java虛擬機棧是線程私有的。虛擬機棧描述的是Java方法執行的線程內存模型,每一個方法執行的時候,Java虛擬機棧都會建立一個棧幀。而每一個棧幀中主要包含四個部分:局部變量表,操做數棧,動態鏈接,方法出口。spa
本地方法棧線程
本地方法棧也是線程私有的。與虛擬機棧類似,只不過虛擬機棧爲字節碼服務,而本地方法棧爲本地方法(Native方法)服務。對象
Java堆接口
Java堆是虛擬機所管理的內存中最大的一塊。Java堆是被全部線程共享的一塊虛擬內存區域。在虛擬機啓動時建立。Java堆的惟一目的就是存放對象實例,全部的對象實例以及數組都應在堆上分配。內存
方法區編譯器
方法區是各個線程共享的內存區域,它用於存儲已被虛擬機加載的類型信息、常量、靜態變量、即時編譯器編譯後的代碼緩存等數據。虛擬機
運行時常量池it
Class文件中除了有類的版本、字
段、方法、接口等描述信息外,還有一項信息是常量池表(Constant Pool Table),用於存放編譯期生
成的各類字面量與符號引用,這部份內容將在類加載後存放到方法區的運行時常量池中