Java 變量存儲的位置


一、局部變量

方法中的局部變量存在於棧內存。每當程序調用一個方法時,系統都會為該方法建立一個方法棧,其所在方法中聲明的變量就放在方法棧中,當方法結束系統會釋放方法棧,其對應在該方法中聲明的變量隨着棧的銷毀而結束,這就局部變量只能在方法中有效的原因。

二、成員變量

對象實例的引用存儲在棧內存中,對象實例存儲在堆內存中。所以,對象中聲明的成員變量存儲在堆中。(成員變量不會隨着某個方法執行結束而銷毀)

三、靜態變量

類中的靜態變量(被 static 關鍵字修飾)存放在 Java 內存區域的方法區。方法區與 Java 堆一樣,是各個線程共享的內存區域,它用於存儲已被虛擬機加載的類信息、常量、靜態變量、即時編譯器編譯后的代碼等數據。雖然Java 虛擬機規范把方法區描述為堆的一個邏輯部分,但是它卻有一個別名叫做 Non-Heap(非堆),目的應該是與 Java 堆區分開來。

 


免責聲明!

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



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