A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© kkopopo 中级黑马   /  2014-2-22 15:15  /  1097 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 何伟超 于 2014-2-22 17:22 编辑
  1. int[] arr1 = new int[4]{1,2,3,4};
  2. int[] arr2 = new int[]{1,2,3,4};
复制代码


第一格式错误的,有没人给解释一下,我定义arr大小同时赋值为何错误的
现在感觉new int[]{1,2,3,4}好像是错误的,
因为感觉它和int arr  = new int [ ]没什么两样!
java中符号{ }好神奇!

评分

参与人数 2技术分 +1 黑马币 +5 收起 理由
滔哥 + 1
何伟超 + 5

查看全部评分

4 个回复

倒序浏览
int[] arr1 = new int[3]{1,2,3,4};    new int[3]代表数组中有3个元素。而你的数组里面有4个元素。
int[] arr1 = new int[]{1,2,3,4};      new int[]代表数组元素个数不定,所以是正确的。

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
int[] arr1 = new int[3]{1,2,3,4};   
首先这个数组应该定义成4个成员,即int[] arr1 = new int[4],但即使是这样,上面那样的方式也是通过不了的。
因为数组已经被初始化过了。
int[] arr1 = new int[4]{1,2,3,4};
int[] arr1 =new int[4]这部分就已经在内存中开辟了一块空间给这个数组,并且都已经附上了初始值,后面再加上{1,2,3,4},就是重复了,所以是不允许的。

int[] arr1 = new int[]{1,2,3,4};就不存在这个问题,因为[]里面是空的,表示还没有开辟空间,大小待定,后面的{1,2,3,4}为它指定了空间大小和成员,这个是对的。

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
戚兴海 发表于 2014-2-22 15:59
int[] arr1 = new int[3]{1,2,3,4};   
首先这个数组应该定义成4个成员,即int[] arr1 = new int[4],但即使 ...

受教了!
回复 使用道具 举报
何伟超 发表于 2014-2-22 15:34
int[] arr1 = new int[3]{1,2,3,4};    new int[3]代表数组中有3个元素。而你的数组里面有4个元素。
int[]  ...

恩谢谢!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马