1. 程式人生 > >Java中基本資料型別和引用資料型別的存放位置

Java中基本資料型別和引用資料型別的存放位置

基本資料型別是放在棧中還是放在堆中,這取決於基本型別宣告的位置。

一:在方法中宣告的變數,即使變數是區域性變數,每當程式呼叫方法時,系統都會為該方法建立一個方法棧,其所在方法中宣告的變數就放在方法棧中,當方法結束系統會釋放方法棧,其對應在該方法中宣告的變數隨著棧的銷燬而結束,這就區域性變數只能在方法中有效的原因。
在方法中宣告的變數可以是基本型別的變數,也可以是引用型別的變數。
(1)當宣告是基本型別的變數的時,其變數名及值(變數名及值是兩個概念)是放在方法棧中
(2)當宣告的是引用變數時,所宣告的變數(該變數實際上是在方法中儲存的是記憶體地址值)是放在方法的棧中,該變數所指向的物件是放在堆類存中的。

二:在類中宣告的變數是成員變數,也叫全域性變數,放在堆中的(因為全域性變數不會隨著某個方法執行結束而銷燬)。
同樣在類中宣告的變數即可是基本型別的變數 也可是引用型別的變數
(1)當宣告的是基本型別的變數其變數名及其值放在堆記憶體中的
(2)引用型別時,其宣告的變數仍然會儲存一個記憶體地址值,該記憶體地址值指向所引用的物件。引用變數名和對應的物件仍然儲存在相應的堆中.

總結: