一.二维数组的定义
用来表示行和列数据的数据结构
二.二维数组的声明
int[][] a;
int a[][];
注意:声明时不能给初始大小
比如:int a[3][4]//非法的
三.二维数组的初始化
1.静态初始化
int a[][]={{1,2},{3,4,5},{6,7}};
注意:采用静态初始化时,该数组的行数为花括号里子花括号个数,列数为子花括号中最大数值个数
2.动态初始化
①单独给指定的元素赋值
a[0][0]=3;
②给指定的行添加列数
a[0]=new int[2];
3.缺省初始化
对于未满足列个数的行自动补类型默认值
比如:int[][] a=new int[3][];
4.length
length在一维数组中返回该数组的长度,而在二维数组中:
在数组名的后面:返回该数组行数
在行数的后面,返回该行的列数
示例:
public class Test {
public static void main(String[] args) {
int[][] b={{1,2},{2,3,4,5},{5,6,7}};
for(int i=0;i<b.length;i++){
for(int j=0;j<b[i].length;j++){
System.out.println("b["+i+"]["+j+"]="+b[i][j]+",");
}
System.out.println();
}
}
}
一.数组拷贝
当不使用arrayCopy()时,直接对整个数组进行拷贝时,目标数组和源数组使用的是同一份数据
二.arrayCopy()
1.参数:
src-源数组
srcPos-源数组中的起始位置
dest-目标数组
destPos-目标数据中的起始位置
length-要复制的数组元素的数量
2.使用arrayCopy()方法,是将源数组中的值复制一份给目标数组,而非是将源数组的目标数组使用同一份数据
一.异常的定义:
异常是因编程错误或外在因素导致程序无法运行的事件
二.异常的分类
1.Error
动态连接错误,比如JVM错误,这种错误不需要程序员干预,不需要捕获
2.Exception
①运行时异常
就是程序运行时出现的错误,这种错误是人为造成的,比如1/0,空指针异常等
②非运行时异常
是在写代码时报出的错误,这种错误需要程序员及时处理
比如:文件未找到异常
三.常见异常
四.异常处理机制
执行代码时会抛出异常类对象JRE处理异常类对象如果该异常可以处理,则进行捕获;如果无法处理,则程序退出
五.捕获异常
try{.....}catch{.....}[finally{.....}]
1.try块
①捕获多个异常可以使用一个try块
②try块内可以放有异常代码,还可以放无异常代码
2.catch块
①一个catch块只能捕获一种异常,当出现多个异常时,可以使用多个catch块进行捕获
②catch块里出现的异常对象的方法
a.getMessage():打印该异常对象的信息
b.printStackTrace():打印错误信息,建议使用
③如果没有异常,则不走catch块
④catch块内异常类顺序,子类父类依次往下
3.finally
①无论该代码有没有错误,都去执行finally块
②作用:进行资源清理工作
③finally块可有可无
一.throws关键字
1.作用:抛出异常,不作处理
2.声明:位于方法名后
比如:public void method() throws Exception{.....}
二.throw和throws
1.throw使用注意:
当抛出一个非运行时异常对象时,需要通过throws先抛出该异常
2.throws使用注意:
①当一个方法抛出异常,则调用该方法的方法也需要抛出该异常
②当子类复写父类方法时,只能抛出比父类少的异常
一、Exception
非运行时异常,这类异常需要编写代码时及时处理
二、RuntimeException
可以不处理,交由JVM处理
一、创建自定义异常类
1.创建一个类,继承Exception
2.复写Exception类的方法
二、使用自定义异常类
同Exception