JVM圖


什么是操作數棧?

- 與局部變量表一樣,均以字長為單位的數組。不過局部變量表用的是索引,操作數棧是彈棧/壓棧來訪問。操作數棧可理解為java虛擬機棧中的一個用於計算的臨時數據存儲區

- 存儲的數據與局部變量表一致含int、long、float、double、reference、returnType,操作數棧中byte、short、char壓棧前(bipush)會被轉為int。

- 數據運算的地方,大多數指令都在操作數棧彈棧運算,然后結果壓棧。
- java虛擬機棧是方法調用和執行的空間,每個方法會封裝成一個棧幀壓入占中。其中里面的操作數棧用於進行運算,當前線程只有當前執行的方法才會在操作數棧中調用指令(可見java虛擬機棧的指令主要取於操作數棧)。
- int類型在-1~5、-128~127、-32768~32767、-2147483648~2147483647范圍分別對應的指令是iconst、bipush、sipush、ldc(這個就直接存在常量池了)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM