直接定义数组和用new定义数组区别是什么解决方法

2025-05-20 03:48:43
推荐回答(1个)
回答1:

按照thinking in java上的说法
int a[]={1,2,3}叫聚集初始化
int a[] = new int[] {1, 2, 3}叫动态聚集初始化

具体区别看看下面代码:

  • Java code
  • import java.lang.reflect.*;


  • public class Test78 {

  •    public static void main(String[] args) {

  •        int[] a = new int[] { 1, 2, 3 };

  •        a = new int[] { 4, 5, 6 }; //可以在任意地方创建和初始化数组对象

  •        print(new int[] { 7, 8, 9 }); //可以在任意地方创建和初始化数组对象


  •        int[] b = { 1, 2, 3 }; // 前一种形式的简写形式

  •        // b = { 4, 5, 6 }; 必须在定义时候使用

  •    }


  •    //打印数组的方法

  •    public static void print(Object o) {

  •        Class cl = o.getClass();

  •        if (!cl.isArray())

  •            return;

  •        Class componentType = cl.getComponentType();

  •        int length = Array.getLength(o);

  •        System.out.print(componentType.getName() + "[" + length + "] = { ");

  •        for (int i = 0; i < length; i++) {

  •            System.out.print(Array.get(o, i));

  •            if (i != length - 1)

  •                System.out.print(",");

  •            System.out.print(" ");

  •        }

  •        System.out.println("}");

  •    }

  • }