JVM學習--局部變量表


 

變量分類:

1)基本數據類型  、 引用數據類型

2)成員變量(在使用前,都經歷過默認初始化值) :類變量(liking的prepare階段給類變量默認賦值,在initial階段,給類變量顯示賦值及靜態代碼塊賦值)、實例變量(隨着對象的創建,會在堆空間中分配實例變量空間,並進行默認賦值)

     局部變量:在使用前,必須進行顯示賦值,否則編譯不通過

 

 

 

局部變量表,定義為一個數組,主要用於存儲方法參數(形參)和定義在方法體內的局部變量,最基本的存儲單位是Slot(槽)

局部變量表中存放編譯期可知的各種基本數據類型,8種數據類型,引用類型(reference),returnAddress類型的變量

32位以內的類型占用一個Slot,包括returnAddress類型,64位的類型(long和double)占用2個Slot,byte、short、char在存儲之前轉換為int,boolean在存儲前轉換為int,0標識false,1 標識true

局部變量表建立在線程私有的棧上,是線程安全的

JVM會為局部變量表的每個Slot分配一個訪問索引,通過這個索引可以訪問到局部變量表中的局部變量值

占用兩個Slot的變量也就是double和long,只需要使用前一個索引即可

如果當前幀是由構造方法或者實例方法創建的,那么該對象引用this將會存在index為0 的Slot處,非靜態方法,都會創建this的一個參數,index為0,其余的參數是按照順序排放的,static 方法被不可以使用this是因為static方法中沒有放this的index

 


免責聲明!

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



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