数学类–最终类、方法都是静态 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);
}
}
finally 区域
这个区域表明不管有没有异常或者异常有没有被捕获,都必须执行的区域
---------------------------------------------–
关于集合 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