java内存区域的划分:
1,寄存器。
2,本地方法区。
3,方法区。
4,栈内存。
5,堆内存。
为什么划分这么区域? 因为每一个内存区域对数据的处理方式不同。
目前要讲的就是栈和堆。
栈:存储都是局部变量 ( 函数参数,函数内定义的变量,语句中定义的变量). 变量一旦使用完(作用域结束),就会在栈内存中自动释放。
堆:存储的是实体(数组和对象,只要是new的,都在堆中)
特点:1,堆内存中的实体都有首内存地址值. 2,堆内存中的变量都有默认初始化值. 3,对于没有任何引用变量指向的实体,会视为垃圾,会被垃圾回收机制所回收。