java--二维数组以及异常和异常处理

二维数组

数组中嵌套数组就是二维数组

  • 二维数组的声明
    数据类型[][] 数组名;
    数据类型 数组名[][];
  • 初始化:
    动态初始化:
    数据类型[][] 数组名 = new 数据类型[一维的长度][二维的长度];
    每一个第二维的小数组长度相同
    数据类型[][] 数组名 = new 数据类型[一维的长度][];
    第二维的每一个小数组的长度可以不同,第二维的小数组还没有创建
    每个数组 arr[外层数组索引]=new 数据类型[长度] |…一维数组创建方式
  • 静态初始化:
    数据类型[][] 数组名 = new 数据类型[][]{{1,2},{1},{1,2,3}…};
    数据类型[][] 数组名 = {{1,2},{1},{1,2,3}…};
  • 二维数组的遍历:
    双重for循环嵌套

Arrays 操作数组的工具类

  • 学习jdk类的方式:
    1.类是干嘛的,有什么作用
    2.构造器
    3.功能(方法)
    jdk的API:说明手册,能够有效帮助我们学习java中的类。
  • 常用的操作数组的方法
    1.static void sort(int[] a);对指定的 int 型数组按数字升序进行排序。
    2.static String toString(int[] a);返回指定数组内容的字符串表示形式。
    3.static int binarySearch(int[] a, int key);使用二分搜索法来搜索指定的 int 型数组,以获得指定的值。
    4.static void fill(boolean[] a, boolean val);将指定的 boolean 值分配给指定 boolean 型数组的每个元素。
    5.static void fill(boolean[] a, int fromIndex, int toIndex, boolean val);将指定的 boolean 值分配给指定 boolean 型数组指定范围中的每个元素。toIndex位置取不到。
    6.static int[] copyOf(int[] original, int newLength);复制指定的数组,截取或用 0 填充(如有必要),以使副本具有指定的长度。
    7.static int[] copyOfRange(int[] original, int from, int to) ;to结束位置不包含。
    8.static boolean equals(double[] a, double[] a2);如果两个指定的 double 型数组彼此相等,则返回 true。
    9.static boolean deepEquals(Object[] a1, Object[] a2);如果两个指定数组彼此是深层相等 的,则返回 true。
    10.static String deepToString(Object[] a) ;返回指定数组“深层内容”的字符串表示形式。

异常

异常:程序生病了
             Throwable
             /1    \2
            Error    Exception
                / 1     \2
        CheckedException     RuntimeException

  • Error:这类错误一般是虚拟机生产的,程序员无法控制,不需要管

  • Exception:
      检查时异常|编译时异常 CheckedException:如果遇到,必须进行处理,否则程序无法运行,发生在编译期。
      运行时异常 RuntimeException:程序运行才知道是否有异常,增强程序的健壮性处理(if…else)。

  • 常见的一些运行时异常:
    1.空指针异常NullPointerException
    2.数组下标越界 ArrayIndexOutOfBoundsException
    3.负数异常 NegativeArraySizeException
    4.数学异常 ArithmeticException
    5.字符串索引越界异常 StringIndexOutOfBoundsException

throw :制造异常
  如果需要在程序中自行抛出异常,应使用throw语句,throw语句可以单独使用,throw语句抛出的不是异常类,而是一个异常实例,而且每次只能抛出一个异常实例。

  • throw语句的语法格式如下:
    throw new ClassNotFoundException();
  • 异常处理方式:
    1.抛出异常: throws 把异常抛到上一层
    2.捕获异常:
   	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中的代码。
    4.如果存在方法的重写, 子类重写方法抛出的异常<=父类的方法抛出的异常。

自定义异常:
   除了java提供的异常类以外,可以自定义异常。
学习异常的方式:

  1. 了解异常分类有什么,各自的特点。
  2. 异常处理 ***
    编译时异常:1)throws 2)try…catch
    运行时异常:1)增强程序健壮性 2)throws 3)try…catch
  3. 自定义异常,使用。

猜你喜欢

转载自blog.csdn.net/qq_41899248/article/details/91345700