1. 程式人生 > >java基本資料型別記憶體分配

java基本資料型別記憶體分配

 6.另外棧有一個很重要的特殊性,就是存在棧中的資料可以共享。如 需要定義int a = 3; int b =3;這兩個自動變數。編譯器先處理int  a=3;首先在棧中建立一個變數為a的引用,然後查詢棧有沒有字面值為3的引用,沒有找到,就開闢一個存放3這個字面值的地址,然後將a指向3的地址。接著處理int b=3;在建立完b這個引用變數後,由於在棧中已經有了3這個字面值,即將b直接指向3的地址。這樣,就出現了a和b同事指向3的情況。 定義完a與b後,在令a=4,那麼b不會等於4,而是等於3,。在編譯器內部,遇到時,它就會中新搜尋棧中是否有4這個字面值,如果沒有,重新開闢地址存放4的值。如果已經有就直接將a指向這個地址,因此a的值改變不會影響b的值。