数学类–最终类、方法都是静态 random—随机小数(大于等于0.0小于1.0)
在java中针对问题的反馈以及处理的一套机制
处理格式 try{调用方法}catch(异常名){ 处理过程}
java提供了一个关于异常的类 Throwable .class
Throwable包含的子类有--------异常(Excepation)和error
Error(错误)-----是一个合理(符合语法且代码执行逻辑没有问题)的应用程序,不应该处理;
Excepation(异常)-----是一个合理的应用程序,出现之后可以处理也可以不处理
分为两种 1、运行时异常–编译没错,运行有错—可以处理也可以不处理
运行时异常总的父类为 RunTimeExcepition 2、编译时异常--编译有错 编译有错---一定要处理(抛出或者捕获)例如 ArithmetException
ArrayIndexOutOfBoundException
NullPointerException
ClassCastException
若异常类不继承RunTimeExcption则默认是编译时异常
方法上必须抛出的异常是编译时异常 过程以及原理
捕获的方式 1、抛出的所有异常需要统一处理,捕获catch块里的异常类,需要时
这些抛出异常类的公共父类
2、抛出的异常进行单独处理,在catch块需要提供对应的catch进行分别处理;
3、抛出的异常需要进行统一处理时,jdk1.7提供了统一捕获,一组之间的异
常,通过 | 进行统一处理;
重载是一个类中,方法名一致,参数列表不一致(和修饰符、返回值、抛出的异常
都没有关系)
重写是在父子类中出现了方法签名一致的方法,重写的原则:
1、方法签名必须保持一致
2、如果父类的方法返回值类型是基本类型/void,name子类就要和父类的方法返回值
类型保持一致
3、如果父类的方法返回值是引用数据类型,子类的方法返回值也要是引用类型,这个
引用类型要么和父类的一致,要么是父类的子类。
4、子类不能抛出比父类更大(范围)的异常,特指编译时异常;
5、子类的访问权限修饰符
public class Excption { public static void main(String[] args){
//调用方法 //方法抛出的异常,方法的调用者需要进行异常的处理 //try块–存放可能会出错的代码 //如果try块出错,就用catch块进行捕获处理 //try—catch一定会执行结束,执行下一个语句 //异常捕获报错后,后边代码继续执行 //实质是抛出异常的对象,捕获的也是异常的对象; //可能文件类型会出错,判断文件类型 //判断是否为null
/*try { String s = readTxt("C:1.java"); } catch (PathNotExitsExption e) { // TODO Auto-generated catch block System.out.println(e.getMessage()); } catch (FileNotExitsExption e) { // TODO Auto-generated catch block System.out.println(e.getMessage()); }catch(NullPointerException e){// 打印异常的栈轨迹 e.printStackTrace();
}*///多异常 统一处理第一种方法 // 所有捕获异常的公共父类 /* try { String s = readTxt(“r:1.java”);
} catch (Exception e){ e.printStackTrace(); } *//* (PathNotExitsExption e) { // TODO Auto-generated catch block System.out.println(e.getMessage()); } catch (FileNotExitsExption e) { // TODO Auto-generated catch block System.out.println(e.getMessage()); }catch(NullPointerException e){ // 打印异常的栈轨迹 e.printStackTrace();
} *///异常的分组从jdk1.7开始
try { String s = readTxt("C:1.java");// 分组,前提是这一组的异常处理方式是一样的; } catch (PathNotExitsExption |FileNotExitsExption |NullPointerException e) {/* // TODO Auto-generated catch block System.out.println(e.getMessage()); } catch (FileNotExitsExption e) { // TODO Auto-generated catch block System.out.println(e.getMessage()); }catch(NullPointerException e){ // 打印异常的栈轨迹 e.printStackTrace(); */ }
System.out.println("读取文件完毕"); }//抛出异常时,只能抛到方法上 private static String readTxt(String path) throws PathNotExitsExption, FileNotExitsExption { //对可能会不存在的路径进行判断 if(path.startsWith(“H”)){ //若有异常,抛出异常后后边的代码都不执行,例如 return “文件内容"就不会执行; throw new PathNotExitsExption(“你的代码有问题”); } //可能文件类型会出错,判断文件类型 if(!path.endsWith(”.txt")){
throw new FileNotExitsExption("文件类型有误");} //判断是否为null if(path==null){ //空指针异常为运行时异常,可以处理也可以不处理 throw new NullPointerException(“参数为null”); } // 开始读取文件内容 return “文件内容”; } } //方法上可以抛出多个异常 //若java中没有此异常,则自定义异常类 class PathNotExitsExption extends Exception{ //属性 private String message;
public PathNotExitsExption(String Message){ this.message=Message; } public String getMessage(){ return message; }} class FileNotExitsExption extends Exception {
public FileNotExitsExption(String message){//调用父类有参构造,给父类属性赋值
super(message); }}
---------------------------------------------–
关于集合 interface Collection
集合是储存对象的容器;
是一个长度可变且可以储存多个数据(对象)的容器
----泛型 用于指定集合元素的数据类型,元素类型只能是引用类型
int[]arr;arr的数据类型是数组类型,arr的元素是int类型
Collectionc;c的数据类型是引用类型,c中的元素是String类型
集合想存储基本类型的数据时 Integer in= 1;
Collection是集合的顶级接口;
比较重点的子接口:List、Set、Queue、List----序列(列表),一个有序的集合
存入数据有序,可以根据下标操作集合元素实现类 ArraysList、LinkedList、Vector、Stack
ArraysList(有序表)
底层是由数组来实现的,默认数组的长度是10,根据底层右移运算进行扩容,每次在原来的基础上扩容一半 10 - 15 - 22 - 33