从0学开发笔记-Java中的内存划分
1.Java虚拟机的内存划分
- 栈(stack):存放的都是方法中的局部变量(数组名(数组的地址)存在栈当中,数组的值存在new出来的堆当中)
- 局部变量:方法的参数,或者是方法{}内部的变量
- 作用域:一旦超出作用域,立刻从栈内存中消失
- 堆(Heap):凡是new出来的东西,都在堆当中。堆内存里面的东西都有一个地址:16进制。堆里面的数据都有默认值。规则:
- 整数:默认为0
- 浮点数:默认为0.0
- 字符:默认为’\u0000’
- 布尔:默认为false
- 引用类型:默认为null
- 方法区(Method Area):存储.class相关信息。包含方法的信息,但是方法运行的时候在栈中运行。
- 本都方法栈(native method stack):与操作系统相关
- 寄存器:与CPU相关