1.java的内存划分
(1)寄存器。cpu涉及区域
(2)本地方法区。是和系统相关的代码存储区域
(3)栈内存:存储的都是局部变量,变量运算区域一结束,就释放。
局部变量:在方法上的参数,方法内的变量,语句中的变量。
(4)堆内存:存储的是数组和对象,简单说,堆内存中存储的都是实体。
实体:简单理解为可以存储多个数据的地方。记住,只要是用new建立的都存储在堆内存中。
特点:1.任何实体都有内存地址值。
2.堆内存中的变量都有默认初始化值。
(5)方法区:存储函数的地方(共享数据)。
2.以数组为例(引用数据类型)
0x0056是十六进制,是这儿数组的模拟首地址值,将数组赋给arr,也就是将首地址给arr。
数组的赋值:
当所有的指向(指向数组的变量)都取消后,数组就会成为垃圾,会不定时被垃圾回收机制回收。