二维数组
数组中嵌套的数组
数据类型[ ][ ]数组名
初始化
动态
数据类型[][] 数组名 = new 数据类型[一维的长度][二维的长度];–每一个第二位的小数组长度相同
数据类型[][] 数组名 = new 数据类型[一维的长度][];–第二位的每一个小数组的长度可以不同,第二位的小数组还没有创建
每个数组 arr[外层数组索引]=new 数据类型[长度] |…一维数组创建方式
静态
数据类型[][] 数组名 = new 数据类型[][]{{1,2},{1},{1,2,3}…};
数据类型[][] 数组名 = {{1,2},{1},{1,2,3}…};
遍历
双重for循环.
Arrays 操作工具
常用的:
static void sort(int[ ] a)
对指定的 int 型数组按数字升序进行排序。
static String toString (int [ ]a)
返回指定数组内容的字符串表示形式
static int binarySearch(int[]a , int key)
使用二分搜索法来搜索指定的 int 型数组,以获得指定的值。
static void fill(boolean[] a, boolean val)
将指定的 boolean 值分配给指定 boolean 型数组的每个元素。
static void fill(boolean[] a, int fromIndex, int toIndex, boolean val)
将指定的 boolean 值分配给指定 boolean 型数组指定范围中的每个元素。
static int[] copyOf(int[] original, int newLength)
复制指定的数组,截取或用 0 填充(如有必要),以使副本具有指定的长度
static boolean equals(double[] a, double[] a2)
如果两个指定的 double 型数组彼此相等,则返回 true
static boolean deepEquals(Object[] a1, Object[] a2)
如果两个指定数组彼此是深层相等 的,则返回 true
throw 制造异常
异常处理方式:
抛出异常: throws 把异常抛到上一层
捕获异常:
try{
可能会出现异常的代码
}catch(ClassNotFoundException e){ //= new ClassNotFoundException();
如果出现ClassNotFoundException类型的异常,执行这里的代码…
}catch(NullPointerException e){
如果出现NullPointerException异常,执行这里的代码
}…
catch(Exception e){
接收除了以上的其他的异常,执行这里的代码
}finally{
无论try中的代码是否出现异常,finally中这里的内容一定会执行
}
注意:
1.try后面可以接一个到多个catch,捕获不同类型的异常
2.把大范围的catch写在最后,小范围写在前面,否则永远执行不到
3.如果try中一旦出现异常,try中的后面的代码都不会执行,执行对应catch中的代码
如果存在方法的重写, 子类重写方法抛出的异常<=父类的方法抛出的异常
自定义异常:
除了java提供的异常类以外,可以自定义异常
学习异常:
1.异常分类,特点
2.异常处理 ***
编译时异常:1)throws 2)try..catch
运行时异常:1)增强程序健壮性 2)throws 3)try..catch
3.自定义异常,使用
异常:程序生病了
Throwable{ Error(CheckedException) , Exception (RuntimeException)}
Error:这类错误一般是虚拟机生产或脱出的,程序员无法控制,不需要管
Exception:
检查时异常|编译时异常 CheckedException:如果遇到,必须进行处理,否则程序无法运行,发生在编译期
运行时异常 RuntimeException:程序运行才知道是否有异常 增强程序的健壮性处理 if…
常见的一些运行时异常:
1.空指针异常NullPointerException
2.数组下标越界 ArrayIndexOutOfBoundsException
3.负数异常 NegativeArraySizeException
4.数学异常 ArithmeticException
5.字符串索引越界异常 StringIndexOutOfBoundsException