栈和堆

来源:互联网 发布:建筑标准层面积算法 编辑:程序博客网 时间:2024/05/20 12:22

1.java的内存划分

(1)寄存器。cpu涉及区域

(2)本地方法区。是和系统相关的代码存储区域

(3)栈内存:存储的都是局部变量,变量运算区域一结束,就释放。

                     局部变量:在方法上的参数,方法内的变量,语句中的变量。

(4)堆内存:存储的是数组和对象,简单说,堆内存中存储的都是实体。

                     实体:简单理解为可以存储多个数据的地方。记住,只要是用new建立的都存储在堆内存中

                     特点:1.任何实体都有内存地址值。

                                  2.堆内存中的变量都有默认初始化值。

(5)方法区:存储函数的地方(共享数据)。

2.以数组为例(引用数据类型)


0x0056是十六进制,是这儿数组的模拟首地址值,将数组赋给arr,也就是将首地址给arr。

数组的赋值:


当所有的指向(指向数组的变量)都取消后,数组就会成为垃圾,会不定时被垃圾回收机制回收。

0 0
原创粉丝点击