数组索引越界异常(ArrayIndexOutOfBoundsException):
数组的索引编号从0开始,一直到“数组的长度-1”为止。如果访问数组元素的时候,索引编号并不存在,那么将会发生数组索引越界异常。
原因:索引编号写错了。
解决:修改成为存在的正确索引编号。
public class ArrayDemo03 { public static void main(String[] args) { int[] array1={1,2,4}; System.out.println(array1[0]);//1 System.out.println(array1[3]);//ArrayIndexOutOfBoundsException } }
空指针异常 (NullPointerException)
所有的引用类型变量,都可以赋值为一个null值。但是代表其中什么都没有。
数组必须进行new初始化才能使用其中的元素。如果只是赋值了一个null,没有进行new创建,那么将会发生:空指针异常 NullPointerException
原因:忘了new
解决:补上new
public class ArrayDemo04 { public static void main(String[] args) { int[] array=null; array=new int[]{1,3,4}; //如果没有这句话,就会发生NullPointerException System.out.println(array[0]); } }
练习
数组最大值:
public class ArrayDemo05 { public static void main(String[] args) { int [] array1={1,2,4,5}; arrayMax(array1); } public static int arrayMax(int[] array){ //数组作为参数 int max=array[0]; for (int i = 1; i < array.length; i++) { if (max<array[i]){ max=array[i]; } } System.out.println("最大值为:"+max); return max; } }
数组反转(Reverse)
public class ArrayDemo06 { public static void main(String[] args) { int [] array1={4,5,6,2,7,1,3}; arrayReverse(array1); for (int i = 0; i < array1.length; i++) { System.out.println(array1[i]); } } public static int[] arrayReverse(int[] array){ //数组作为参数 for (int min = 0,max=array.length-1; min < max; min++,max--) { //数组翻转操作,需要满足下角标min<max int temp; temp=array[min]; array[min]=array[max]; array[max]=temp; } return array; //数组作为返回值 } }