《深入理解jvm》6-java的基本型別
阿新 • • 發佈:2020-10-16
上一節講到了jvm中程式碼執行的過程,class檔案被載入到方法區,需要執行的時候,會生成java方法棧的棧幀。然後提供給解釋執行器進行命令翻譯。
java語言中有幾個基本型別,boole/byte/short/char/int/long/float/double。jvm提供基本型別的初衷是為了提高計算速度和節省記憶體空間,java語言中有基本型別和引用型別兩大類
基礎型別在堆中儲存的長度分別為:
- boolean 1位元組
- byte 1位元組
- short 2位元組
- char 2位元組
- int 4位元組
- long
- float
- double
但是在解釋執行器上略微有些不同:boolean,byte,short,char型別都會擴充套件成4個位元組,保持跟int一樣的長度,被當作int對待。
所以當堆內的基本型別讀取到解釋執行器棧的時候,會做“零擴充套件”,在棧上儲存到記憶體的時候,會做資料擷取。