当前位置: 代码迷 >> J2SE >> 直接定义数组和用new定义数组区别是什么解决方法
  详细解决方案

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

热度:349   发布时间:2016-04-24 13:29:37.0
直接定义数组和用new定义数组区别是什么
请问大侠
int a[] = new int[] {1, 2, 3} 与 int a[]={1,2,3}区别是什么啊?

------解决方案--------------------
没有本质上的区别,简写而已
------解决方案--------------------
按照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("}");    }}
  相关解决方案