JVM-虛擬機存儲區域


1.java虛擬機棧:

​ 棧是運行是創建的,生命週期與線程相同,存棧幀的,

​ 用於:存儲局部變量表(編譯器可知的各種基本數據類型,boolean,type,char...等,對象引用),

​ 操作數棧,動態鏈表,方法出口

2.本地方法棧:

​ 與虛擬機棧發揮作用非常相似,之間區別不過是虛擬機棧爲虛擬機執行java方法服務,

​ 而本地方法棧則爲虛擬機使用到的native方法服務。對本地方法棧中使用的語言,使用

​ 方式與數據結構並沒有強制規定,因此具體的虛擬機可以自由發揮實現它。

3.java堆:

​ java虛擬機所管理的內存中最大的一塊,被所有線程共享的一塊內存區域,子虛擬機

​ 啓動時創建,此內存區域唯一的目的就是存放對象實例,幾乎所有的對象實例都在這

​ 裏分配內存。java堆是垃圾回收器管理的主要區域,因此被稱作“垃圾堆”。收集器基本

​ 採用分代收集算法,所以java堆還可以細分爲:新生代,老生代;

  1. 方法區:

​ 方法區與java堆一樣,存放各個線程共享的內存區域。他用於存儲已被虛擬機加載的

​ 類信息,常量,靜態變量,即時編譯器編譯後的代碼等數據。在HotSprot虛擬機上開發

​ 常常稱爲“永久代”。

5.運行時常量池

​ 是方法區的一部分,用於存放編譯期生成的各種字面量和符號引用,這部分內容將在類

​ 加載後進入方法區的運行時常量池中存放。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章