Java内存划分
分为五个部分:
一、栈(Stack)
存放的是方法中的局部变量; 方法的运行一定要在栈中
局部变量:方法的参数,或是方法内部的变量;
作用域:若超出作用域,则立刻从栈内存中消失;
二、堆(Heap)
凡是NEW出来的各种变量等都在堆当中;(例如数组)
堆中每个对象都有一个地址值,为16进制,默认如下:
- int -> 0
- float/double -> 0.0
- char -> ‘\u0000’(不可见字符,char类型的默认字符)
- boolean -> false
- 引用类型 -> null
三、方法区(Method Area)
存储有关.class的信息以及方法的信息。
四、本地方法栈(Native Method Stack)
与操作系统有关。
五、寄存器(Register)
与CPU有关。