1. 无论使用那种数组,数组标识符只是一个引用,指向在堆中开辟的一个真实对象(存储空间)。并且Length是该对象的一个成员(属性)。所以说length是数组的大小,而不是实际保存的元素个数。<br /> ** 数组初始化的方式:**<br /> ** 1.引用类型:**
    1. public class ArrayOptions {
    2. public static void main(String[] args) {
    3. BerylliumSphere[] a;//数组b还未被初始化
    4. BerylliumSphere [] b=new BerylliumSphere[5];
    5. BerylliumSphere[] c=new BerylliumSphere[4];
    6. for (int i = 0; i <c.length ; i++) {
    7. if (c[i]==null)
    8. c[i]=new BerylliumSphere();
    9. }
    10. BerylliumSphere[] d={new BerylliumSphere(),new BerylliumSphere(),new BerylliumSphere()};//采用的是聚焦初始化
    11. a=new BerylliumSphere[]{new BerylliumSphere(),new BerylliumSphere()};
    12. System.out.println("a的长度"+a.length);
    13. System.out.println("b的长度"+b.length);
    14. System.out.println("c的长度"+c.length);
    15. System.out.println("d的长度"+d.length);
    16. a=d;//把数组d赋给数组a
    17. System.out.println("a=d后的数组a的长度"+a.length);
    18. }

    2.基本类型:以int为列

    1. public class ArrayOptions {
    2. public static void main(String[] args) {
    3. int[] e;//未初始化
    4. int[]f =new int[5];
    5. System.out.println("数组f"+ Arrays.toString(f));
    6. int[] g=new int[4];
    7. for (int i = 0; i <g.length ; i++) {
    8. g[i]=i*i;
    9. }
    10. int [] h={11,47,93};
    11. System.out.println("f的长度"+f.length);
    12. System.out.println("g的长度"+g.length);
    13. System.out.println("h的长度"+g.length);
    14. e=h;
    15. System.out.println("e=h后e的长度"+e.length);
    16. e=new int[]{1,2};
    17. System.out.println("new int[]后e的长度"+e.length);
    18. }
    19. }

    通过上面的例子我们可以看出,length用来表示数组的大小,而不是数组的元素个数。同时,当生成一个新数组时候,引用类型被自动初始化为null,基本类型的数组如果是数值类型的,就被自己动初始化为0,char类型自动初始化为O,布尔类型学自己初始化为false。