数组是程序员经常会用到的数据结构。在进行数组操作如复制时有可能会产生三种异常。
- NullPointerException
这个异常的产生可能是因为源数组或是目的数组并没有引用到一个数组的实例,也就是说数组引用的值为NULL时,就会产生这个异常。
- ArrayIndexOutOfBoundsException
当数组索引值指定错误时或是起始位置给错了,也可能是拷贝数据的个数超出数组的大小范围。
- ArrayStroeException
产生的原因可能是来源或是目的根本就不是数组,或者是来、目的数组不是基本数据类型的数组。
另外说一个题外话,对于数组的操作,使用循环做copy和使用System.arraycopy做copy有什么差别?最大的差别在于System.arraycopy这个方法是使用JNI的方式,所以速度上会比较快。