Java的記憶體需要劃分為5個主要部分:
1、棧(Stack):存放的都是方法中的局部變量。方法的運作一定要在棧中運作。
局部變量:方法的參數,或者是放大{}内部的變量。
2、堆(Heap):凡是new
出來的東西,都在堆中。
堆記憶體裡面的東西都有一個位址值:16進制(0x…)
堆記憶體裡面的資料,都有預設值。規則:
如果是整數 預設為0
如果是浮點數 預設為0.0
如果是字元 預設為’\u00000’
如果是布爾 預設為false
如果是引用類型 預設為null
3、方法區(Method Area):存儲.class相關資訊,包含方法的資訊。
4、本地方法棧(Native Method Stack):包含方法的資訊。
5、寄存器(pc Register):與CPU相關。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2csk3Z650dJpXT4FleYhnRzwEMW1mY1RzRapnTtxkb5ckYplTeMZTTINGMShUYfRHelRHLwEzX39GZhh2css2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xyayFWbyVGdhd3LcV2Zh1Wa9M3clN2byBXLzN3btg3Pn5GcukjM0ETM0IjMxIjMwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)