Java基础(数组-内存空间的划分)

来源:互联网 发布:idownload mac 编辑:程序博客网 时间:2024/05/23 14:02

寄存器是cpu的,我们不用管

本地方法区:这个跟所有系统相关的,java虚拟机,分版本,调用不同系统的内容

栈内存。

       存储的都是局部变量。是不是放在函数里面的啊

       而且变量所属的作用域一旦结束,该变量就自动释放。

5,堆内存。

       存储是数组和对象(其实数组就是对象) 凡是new建立在堆中。

       特点:

       1,每一个实体都有首地址值。(方法要进栈,那是因为局部变量都在方法里面,方法不进栈,局部变量能进栈不,所以选是主函数进栈)

       2,堆内存中的每一个变量都有默认初始化值,根据类型的不同而不同。整数是0,小数0.0或者0.0f,boolean falsechar '\u0000',这个是堆内存的特点,而栈则不同,不会进行默认初始化

这里面的null只是这个y不再指向这个地址,而x还是指向的,这里面再打印x[0]这个还是有值的,只不过y[0]这个没有值了,这一点一定要特记

3,垃圾回收机制。堆里面的数据都是通过垃圾回收机制进行处理的

放在堆里面的数据会对堆里面的数据进行默认初始化,不同类型初始化不一样

 

重要知识点:

int[] arr = new int[3];

System.out.println(arr);//  [I@c17164

 [I@c17164解释:这个@用来分隔左边与右边的内容,左边的[这个表示是一个数组,I表示是int类型,这是一个hash算法,右边表示一个是window下的hash算法,其实是用一个二进制来表示的,但是也通过了hash算法进行封装,其实吧这就是一个在内存中的一个地址




0 0
原创粉丝点击