一、一维数组
1.声明和初始化
正确方式:
int[] a; //java推荐用这种方式,c++选手有可能有点难接受,我也适应了很久
a = new int[]{1, 2, 3}; //只能new一次
a = new int[]{1, 2, 3, 4}; //报错
int b[]; //c++中常用的方式,但是java中一般不用
int[] c = {1, 2, 3, 4};
int[] d = new int[10];
错误方式:
int[] arr1 = new int[]; //一般都不会犯这个错
int[5] arr2 = new int[5]; //这个有可能
int[] arr3 = new int[3]{1,2,3}; //这个写错的机会也很大
int[] arr4;
arr4 = {1, 2, 3}; //只能在声明的时候用
2.数组的属性:length
二、二维数组
1. 如何理解二维数组?
数组属于引用数据类型,数组的元素也可以是引用数据类型,一个一维数组A的元素如果还是一个一维数组类型的,则此数组A称为二维数组。
2.声明和初始化
正确的方式:
int[][] arr1 = new int[][]{{1,2,3},{4,5},{6,7,8}};
String[][] arr2 = new String[3][2];
String[][] arr3 = new String[3][]; //第二个可以不写
int[] arr4[] = new int[][]{{1,2,3},{4,5,9,10},{6,7,8}};
int[] arr5[] = {{1,2,3},{4,5},{6,7,8}};
错误的方式:
String[][] arr4 = new String[][4]; //第一个必须写
String[4][3] arr5 = new String[][];
int[][] arr6 = new int[4][3]{{1,2,3},{4,5},{6,7,8}};
三、数组常见异常
-
数组角标越界异常:ArrayIndexOutOfBoundsException
-
空指针异常:NullPointerException
四、可变参数
- jdk 5.0新增的内容
- 可变个数形参的格式:数据类型 … 变量名
- 当调用可变个数形参的方法时,传入的参数个数可以是:0个,1个,2个,。。。
- 可变个数形参的方法与本类中方法名相同,形参不同的方法之间构成重载
- 可变个数形参的方法与本类中方法名相同,形参类型也相同的数组之间不构成重载。换句话说,二者不能共存。
- 可变个数形参在方法的形参中,必须声明在末尾
- 可变个数形参在方法的形参中,最多只能声明一个可变形参。