GODBAR
2015-11-29 11:10
采纳率: 100%
浏览 19.1k
已采纳

Java中定义数组必须要指定长度吗,如果是为什么?

Java中定义数组必须要指定长度吗,如果是为什么?今天写程序时,前面定义了一个数组是空的int[] a ={};但是在下面用a[i]循环赋值时会出现 java.lang.ArrayIndexOutOfBoundsException错误,当我用int[] a = new int[8];这种形式就不会出现这种错误,这是什么原因,求回答啊

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

7条回答 默认 最新

  • 晓呆同学 2015-11-29 14:09
    已采纳

    Java中的数组是定长的!你这样int[] a ={}; 定义出来的数组a 长度为0,已经是定长了,之后再给它赋值是不可以的,因为它的长度定义出来之后是不可改变的了。
    所以在使用数组的时候,一定要注意长度,不能超过这个长度,负责就数组下表越界了。

    点赞 评论
  • 随便2015 2015-11-29 11:26

    不知道循环的时候你循环条件是什么?是数组的长度吗?

    点赞 评论
  • qq_33177392 2015-11-29 11:35

    如果是标明全部格式,就必须给定一个数值,否则返回时出错;刚开始可以用变量名,在后面再new一个数组,也可以一个个添加!把数组可以看作是一个变量,比普通的
    变量难理解而已!

    点赞 评论
  • chenlxhf 2015-11-29 11:57

    你用这种方式肯定要先声明数组长度,不然系统不会为他分配内存空间。如果是不知道长度的话,你可以要arrayList动态数组啊。

    点赞 评论
  • 紫气天堂 2015-11-29 12:26

    使用new时进行新建,会直接分配内存空间,使用这种方式的话好像不行

    点赞 评论
  • feat_ct 2015-11-29 12:35

    根据你的错误提示,我感觉你是在循环结构里出现了类似for(int i=0;i<=a.length;i++)的写法,要注意i只能<a.length,不能等于。length为n的数组
    ,下标是从0~n-1的。

    点赞 评论
  • qq_25666275 2015-11-30 12:33

    不一定,有一种是 typename……arryname用法,不过总体来说是的

    点赞 评论

相关推荐 更多相似问题