Java的內存需要划分成為5個部分:
1.棧(Stack):存放的都是方法中的局部變量。方法的運行一定要在棧當中運行。
- 局部變量:方法的參數,或者是方法{}內部的變量
- 作用域:一旦超出作用域,立從棧內存當中消失。
2.堆(Heap):凡是new出來的東西,都在堆當中。
堆內存里面的東西都有一個地址值:16進制
堆內存里面的數據,都有默認值。規則:
- 如果是整數類型:那么默認值為0
- 如果是浮點類型:那么默認值為0.0
- 如果是字符類型:那么默認值為\u0000
- 如果是布爾類型:那么默認值為false
- 如果是引用類型:那么默認值為null
3.方法區(Method Area):存儲.class相關信息,包含方法的信息。
4.本地方法棧(Native Method Stack):與操作系統相關。
5.寄存器(pc Register):與cpu相關。