一、內存簡介:
1.內存分為5塊:
? ? ? ? a.棧(Stack)
? ? ? ? ? ? ? ? 主要運行方法,方法的運行都會進入棧內存運行,云南行完畢之后,需要“彈棧”,為了騰空間。
? ? ? ? b.堆(Heap)
? ? ? ? ? ? ? ? 保存的是對象,數組,每new一次,都會在堆內存中開辟空間,并為這個空間分配一個地址值,堆內存中的數據都是有默認值的:
? ? ? ? ? ? ? ? 整數:0? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 小數:0.0
? ? ? ? ? ? ? ? 字符:‘\u0000’? ? ? ? ? ? ? ? ? ? ? 布爾:false? ? ? ? ? ? ? ? 引用:null
? ? ? ? c.方法區(Method Area)
? ? ? ? ? ? ? ? 代碼的“預備區”,記錄了類的信息以及方法的信息。
? ? ? ? ? ? ? ? 方法區中主要保存class文件以及其中的信息
? ? ? ? ? ? ? ? 代碼運行之前,需要先進內存(方法區)
? ? ? ? d.本地方法棧、寄存器(目前暫不接觸)。
2.運行圖大致示意:
二、內存圖:
1.一個數組的內存圖:
2.兩個數組的內存圖:
?3.兩個數組指向同一片內存空間: