根據 JVM 規範,JVM 內存共分為虛擬機棧、堆、方法區、程序計數器、本地方法棧五個部分。
1、Java虛擬機棧:
線程私有;每個方法在執行的時候會創建一個棧幀,存儲了局部變量表,操作數棧,動態連接,方法返回地址等;每個方法從調用到執行完畢,對應一個棧幀在虛擬機棧中的入棧和出棧。
2、堆:
線程共享;被所有線程共享的一塊內存區域,在虛擬機啟動時創建,用於存放對象實例。
3、方法區:
線程共享;被所有線程共享的一塊內存區域;用於存儲已被虛擬機加載的類信息,常量,靜態變量等。
4、程序計數器:
線程私有;是當前線程所執行的字節碼的行號指示器,每條線程都要有一個獨立的程序計數器,這類內存也稱為“線程私有”的內存。
5、本地方法棧:
線程私有;主要為虛擬機使用到的Native方法服務
閱讀更多 千鋒大連 的文章