java之內存分布圖


前言

不關我們是創建基本數據類型的變量還是引用數據類型的變量,jvm都會通過內存分布去編譯和運行程序。

內存一般分為棧區、堆區、方法區(方法區里面包含常量池)

棧區一般存放變量(局部變量)、方法的參數引以及用對象

堆區一般存放的是對象以及成員變量

方法區一般存放方法 里面常量池存放常量

不管你是要創建變量還是對象在內存里面都會開辟內存空間

注:在內存中他們之間的關聯是通過內存地址進行關聯的 而在程序中為了方便我們不用內存地址 改用變量來表達

下面來看一個簡單的聲明一個變量的內存分布圖:

上圖解釋:

1.首先在棧區開辟一個空的內存空間 

2.常量放在常量池中並創建內存地址

3.將常量的內存地址賦值給a變量的內存空間

4.最后a變量指向常量10  整個聲明變量並賦值的流程結束

(注意:局部變量和普通變量是沒有默認值的   而成員變量也叫成員屬性在內存地址中是有默認值的  int類型的成員屬性默認值是0  )

在來看一下創建對象時的內存分布圖

 


免責聲明!

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



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