无论使用那种数组,数组标识符只是一个引用,指向在堆中开辟的一个真实对象(存储空间)。并且Length是该对象的一个成员(属性)。所以说length是数组的大小,而不是实际保存的元素个数。<br /> ** 数组初始化的方式:**<br /> ** 1.引用类型:**
public class ArrayOptions {public static void main(String[] args) {BerylliumSphere[] a;//数组b还未被初始化BerylliumSphere [] b=new BerylliumSphere[5];BerylliumSphere[] c=new BerylliumSphere[4];for (int i = 0; i <c.length ; i++) {if (c[i]==null)c[i]=new BerylliumSphere();}BerylliumSphere[] d={new BerylliumSphere(),new BerylliumSphere(),new BerylliumSphere()};//采用的是聚焦初始化a=new BerylliumSphere[]{new BerylliumSphere(),new BerylliumSphere()};System.out.println("a的长度"+a.length);System.out.println("b的长度"+b.length);System.out.println("c的长度"+c.length);System.out.println("d的长度"+d.length);a=d;//把数组d赋给数组aSystem.out.println("a=d后的数组a的长度"+a.length);}
2.基本类型:以int为列
public class ArrayOptions {public static void main(String[] args) {int[] e;//未初始化int[]f =new int[5];System.out.println("数组f"+ Arrays.toString(f));int[] g=new int[4];for (int i = 0; i <g.length ; i++) {g[i]=i*i;}int [] h={11,47,93};System.out.println("f的长度"+f.length);System.out.println("g的长度"+g.length);System.out.println("h的长度"+g.length);e=h;System.out.println("e=h后e的长度"+e.length);e=new int[]{1,2};System.out.println("new int[]后e的长度"+e.length);}}
通过上面的例子我们可以看出,length用来表示数组的大小,而不是数组的元素个数。同时,当生成一个新数组时候,引用类型被自动初始化为null,基本类型的数组如果是数值类型的,就被自己动初始化为0,char类型自动初始化为O,布尔类型学自己初始化为false。
