java内存主要划分为五个部分:
(1)栈(stack):存放的都是方法中得局部变量,有作用域,一旦超出作用域,立刻从栈内存中消失,方法的运行一定要在栈当中;
(2)堆(heap):凡是new出来的东西,都在堆当中,堆内存里面的东西都有一个地址值,这个地址值是个16进制数,堆内存里面的东西都有
默认值,如下所示:
如果是整数:默认为0;
如果是浮点数:默认是0.0;
如果是字符:默认是'\u0000'
如果是布尔:默认为false;
如果是引用类型:默认为null
(3)方法区(Method Area):存储.class相关信息,包含方法信息;
(4)本地方法栈(Native Method Stack):与操作系统相关;
(5)寄存器(pc Register):与cpu相关;