----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
JAVA中的堆,定义数组后JAVA就会在堆中相应的开辟一个地址给它,先来说说定义数组注意的一些细节吧
定义一个int类型的数组int[] x=new int[3]
/*其中x是数组类型而不是int类型,int[]中int代表数组元素的类型
数组只要被定义了没有复制的情况下会有默认值,其中x的值和x【0】的地址一样都是这个数组的首地址*/
int[] y=x;//这个时候的数组y和数组x所在堆中使用的空间是同一个空间,就好比2个人所使用同一个电视遥控器一样
y[0]=100;
System.out.println(x[0]);//输出100,比如一个不小心吧遥控器一个键按坏了,那么另外一个人用遥控器的时候这样遥控器的那个键还是坏的
System.out.prinln(x);会输出数组x在堆中的地址
----------------------------------------------------------------------------------------------------------------------
而如果我这样写
int[] y=x;
y[1]=100;
x=null;
System.out.println(x[1]); //这个时候在编译的时候会报错,因为计算机x在堆中的地址为空了,那么他就不会知道x[1]的地址了,更不知道x[1]对应地址中的值了
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------