黑马程序员技术交流社区

标题: 申明数组,用NEW和不用NEW有什么区别吗? [打印本页]

作者: 我一直在等待    时间: 2013-10-21 20:08
标题: 申明数组,用NEW和不用NEW有什么区别吗?
本帖最后由 我一直在等待 于 2013-10-22 13:12 编辑

例如:
int [] numbers ={1,2,3,4,5};
int [] numbers =new int[5]{1,2,3,4,5};
这两个数组有什么本质的区别吗?


作者: 猫咪不吃糖    时间: 2013-10-21 20:23
本帖最后由 猫咪不吃糖 于 2013-10-21 20:24 编辑

用new的话,只要声明数组空间的大小就可以了,不用把所有数据填出来;
new int[5];
作者: lgh521911    时间: 2013-10-21 20:28
第一个:int[] numbers={1,2,3,4,5}直接给定义的数组初始化元素的集合,并赋值。第二个int [] numbers=new int[]{1,2,3,4,5}表明定义一个变量为Numbers的整形数组,他有5个元素,五个元素的值分别为{1,2,3,4,5}。而如果你只是定义一个没有给元素赋值只是代表含有5个元素的数组的话可定义为int [] numbers=new int[];慢慢体会下区别。
作者: 喜之郎果冻    时间: 2013-10-21 21:31
本质上应该是没有区别的。一般来说如果数组元素是确定的就可以省去new,直接采用上一种方法。如果只知道数组长度而不能确定具体元素,就要选择用int[] numbers = new int[5] ;
作者: ˋ初°见    时间: 2013-10-21 21:54
二个没什么区别,不用new时,直接给数组赋值,系统自动计算数组长度,用new时,在[]把数组长度固定,然后在后面赋上与长度相同个数的数,也可以不赋值。
int[] iArray=new int[5];    iArray={1,2,3,4,5};
注意:如果在声明时不给数组赋值,一定要给数组长度;
作者: 杨靖    时间: 2013-10-22 09:32
int [] numbers ={1,2,3,4,5};
int [] numbers =new int[5]{1,2,3,4,5};
区别不大吧,如果不用new的话,必须要注明数组包含的元素,用new的话就可以只声明数组的元素个数,包含的哪些元素可声明可不声明.
作者: 张锟-i    时间: 2013-10-22 10:05
两种都是正确的,而且没啥区别;不用new 是要把数组里的所有元素写进大括号里面。
作者: 李明贵    时间: 2013-10-22 10:25
我觉得这只是声明的方式不同,不同的方式有不同的写法,其效果和作用是一样的
作者: aihuahuaxx    时间: 2013-10-22 19:10
使用方法不用而已,如果你要看具体的区别的话,我建议就去看看他们的反射有什么不一样的就知道了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2