日期:2014-05-20  浏览次数:20706 次

java数组小问题!帮忙看看!谢谢
方法1 :
int[] array01 = {1,2,3}和
方法2 :
int[] array02 = new int[]{1,2,3};
有人说:

两种方法都一样
方法1是“数组初始化式”,仅用于初始化。
方法2的右边叫作“数组字面量”,可用在任何需要一个int数组的地方。”
我的疑问又有了,既然两种方法都一样的,为什么方法1 仅用于初始化。
方法2 是可用在任何需要一个int数组的地方?

难道不是引用array01和array02分别指向 堆中的对象吗?


------解决方案--------------------
int[] array02 = new int[]{1,2,3};第一次见这种初始化方式,神奇!
------解决方案--------------------
语法问题而已。第一个你可以看成是编译器帮你new了一个数组然后把引用赋值给你的变量;第二个自己new一个数组然后把引用赋值给变量。没什么好深究的,意义不是很大。
------解决方案--------------------
第二种难道就是可以直接当数组参数传递
------解决方案--------------------
方法1是简捷的写法而已,无任何区别。
------解决方案--------------------
语法问题,就像吃饭,有的人用碗乘来吃,有的人用盘子乘来吃,有的人直接用手抓来吃,目的都一样。