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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

哪位大神来解释下

18 个回复

正序浏览
数组初始化分静态和动态两种方法,楼主的是将两种混起来用,这种方式在java中是不允许的,只能用一种方法
int[] a = {0,1,2}; 这种初始化的数组三个元素值分别为a[0] = 0 ,a[1] =1 ,a[2] = 2 ,
另外一种
int[] a = new int[3];   定义数组的长度为3,其中的3个元素默认值a[0] = 0 ,a[1] =0 ,a[2] = 0 ,
int类型的默认值是0, 看你选哪种方式了
回复 使用道具 举报
int x[3] = {1, 2, 3},   虚拟机使根据[3] 或{1,2,3}就 可以确定长度了,但两个一起用,虚拟机不知道是用[3]还是{1,2,3}来确认长度,
回复 使用道具 举报
java虚拟机不允许这样对数组进行初始化
回复 使用道具 举报
数组长度是3,但是数组的下标只能是0-2
回复 使用道具 举报
数组的初始化方式,分为静态初始化,和动态初始化。你使用就是静态的初始化,静态初始化,只需要在花括号里面写上数组的元素即可,不需要再给数组规定大小,系统会默认使用你在花括号里面的长度为数组的长度
回复 使用道具 举报
我当时看的时候也这么干了,当时还郁闷为啥这样就不对,后来只能当规则记了。动静态只能用一!
回复 使用道具 举报
本帖最后由 32282722 于 2016-9-11 20:08 编辑

首先前边定义错了,数组定义int[] x  或者int x[]  []里不能有数据
回复 使用道具 举报
前面不能用三                                                              
回复 使用道具 举报
int x[3]  加了一个3,已经不是代表类型了
回复 使用道具 举报
方便的话,粘出来源码看看啊
回复 使用道具 举报
int[] x = {1,2,3};   这样才是对的
回复 使用道具 举报
青火 中级黑马 2016-9-11 15:33:51
8#
int[] x = {1,2,3};

这样就不会错了
回复 使用道具 举报
java不容许这样,所以会报错……
回复 使用道具 举报
动静态结合
回复 使用道具 举报
动静不能结合使用.这是规则.
回复 使用道具 举报
动静态只能用一,这是结合啊不允许
回复 使用道具 举报
java不允许,如果你长度传4的情况下,jvm怎么办;后面三个元素已经限定了数组长度,前面再传3就多此一举了
回复 使用道具 举报
本帖最后由 无悔的人生 于 2016-9-11 13:19 编辑

你这样是动态和静态同时声明了  你应该是int[] x={1,2,3} 或者int[] x=new int[3]  然后在给x[0]  x[1]  x[2]赋值
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马