我需要一个全局变量,是个数组,然后我在构造方法里面输入了一个整型数k,这个k是数组的大小也就说int i[k],
但是我在使用的时候报错,ArrayIndexOutOfBoundsException
求大神帮助啊
首先,数组初始化有静态初始化,例如:int[] arr = {1,2,3,4};或者开辟空间初始化int[] arrr = new int[5];数组不支持动态初始化。
其次,ArrayIndexOutOfBoundsException是数组下标越界的意思,就是如果开辟一个数组int arr = new int[3],
那么,这个数组就只能存放三个数值,arr[0]、arr[1]、arr[2]这三个,且无法动态增加,当读取arr[3]的时候,就会报ArrayIndexOutOfBoundsException。
所以,数组是大小固定的,使用时必须小于定义的数组大小。而集合List类可以解决动态添加而不用担心越界。
数组必须指定length,你想jvm在加载类的时候阅读到你的全局变量,发现一个没有指定length的数组,肯定报错撒,而且你构造方法给length以后是后者行为了,中间有个时间差,也就是说在jvm检查的时候已经挂掉了,后面构造方法根本不会执行,遇到这种需求,用集合应该要好些。
数组是全局变量,K是不是全局的呢,不是的话加载的时候数组长度就不存在了
数组下标越界异常,数组中元素个数是固定的,当多于这个个数的时候,会报错
此异常表示的是你的数组越界了