JVM虛擬機內存分配

1、程序計數器

程序計數器是一塊比較小的內存空間,可以看做是當前線程所執行的字節碼的行號指示器。

多線程時,爲了線程切換後能恢復到正確的執行位置,每條線程都需要有一個獨立的程序計數器,各條線程之間計數器互不影響,獨立存儲。

我們稱這類內存區域爲“線程私有”的內存。

2、棧stack

線程私有,生命週期和線程相同。

存放基本數據類型和對象的引用。

基本數據類型有8種,Boolean,byte,int,double,float,short,long,char。

3、堆Heap

java堆是java虛擬機內存中最大的一塊。

java堆是被所有線程所共享的一塊區域,在虛擬機創建時啓動,存放對象實例。

java堆是垃圾回收器管理的主要區域,因此又被稱爲“GC堆”(Garbage Collection Heap)。

java堆還可以細分爲新生代和老年代。

4、方法區

方法區,和java堆一樣,是線程共享的一塊區域,用於存儲已經被虛擬機加載的類信息,常量,靜態變量、即時編譯器編譯的代碼。

運行時常量池是方法區的一部分。
 

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