jvm(java虛擬機)內存分配總結

java虛擬機的內存分配主要分類兩部分,線程共享區和線程獨佔區

1、線程共享區

2、線程獨佔區

3、1.8版本虛擬機內存架構調整

4、直接內存和運行時常量池

運行時常量池,就是運行時產生的常量。代碼中直接定義的常量是class字節碼常量,固定的。運行時產生的常量,如拼接字符串,如string.intern() 都是運行時產生的常量。

注意:1.8運行時常量池放在元數據實現

直接內存:是 jdk1.4以後提供的nio模型,其中基於通道的buffer緩衝使用的是虛擬機堆外之外的內存,受到物理內存的限制

 

 

1、基本數據類型 數據和引用都存儲在棧中:操作快,但是內存小

2、包裝類 1.5以後提供自動拆箱機制

 Java的8種基本類型(Byte, Short, Integer, Long, Character, Boolean, Float, Double), 除Float和Double以外, 其它六種都實現了常量池, 但是它們只在大於等於-128並且小於等於127時才使用常量池

3、string 直接賦值放在常量池中存儲在 stringTable中(類似)

4、數組 無論基本數據類型還是對象 數據均存儲在堆內存中

 

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