一、回顾:
- 字符串类:
-
- String:不能更改的字符串,底层使用常量的字节数组
- StringBuffer
- StringBuilder
- 正则表达式:
-
- matches(String regex):判断一个字符串是否满足定义正则
- replaceAll(String regex,String replacement):替换所有字符串
- replaceFirst(String regex String replacement):替换第一个
- split(String regex):分割字符串
- 作用:
-
-
- 最字符串进行判断
-
- 日期相关的内容
-
- 1.Date:java.util.Date:表示日期时间
- 2.SimpleDateFormat:日期格式化的类
- 3.日期的模板:yyyy MM dd HH mm ss,字符串的拼接
- 4.format(Date),返回的类型是String
- 5.parse(String):将字符串表示的日期转为Date类型的日期
- Calendar:日历类,做时间运算的加减操作;
-
- 使用方法:
-
-
- 创建对象
-
-
- 常用的字段:
-
-
- YEAR:表示年字段【属性】
- MONTH:表示月份的字段
- DAY_OF_MONTH:表示月的第几天字段
- DAY_OF_WEEK:表示第几周字段
- HOUR:时钟字段
- MINUTE:分钟字段
- SECOND:秒的字段
-
-
- 方法:
- get(字段),
- set(字段,值)
- add(字段,值)
- getTime():将Calendar转为date
- setTime:将日期设置为指定的日期
二、异常概念【了解】
1.异常的体系结构
- Throwable:在Java中是异常的顶级父类
-
- Error:错误
-
-
- 错误是不能用Java代码处理的异常
-
-
-
-
- 错误情况
-
-
-
-
-
-
- StackOverflowError:栈内存溢出的错误
-
-
-
-
- Exception:异常
-
-
- 可以使用Java代码处理的异常
- 异常分为两种情况
-
-
-
-
- 编译时异常:强制需要处理的异常
- 运行时异常:不强制处理的异常
-
-
-
-
- 常见的运行时异常
-
-
-
-
- 1.ArrayIndexOutBoundsException:下标越界
- 2.NullPointerException:空指针异常
- 3.ArithmeticException:除数为零
- 4.ClassCastException:类型转换异常
- 5.NumberFormatException:数字格式异常
- 6.IllegalArgumentException:非法参数异常 (不是多态创建的 Object obj = new object() String s = (String)obj )
-
-
-
-
- 编译时的异常(后续补充)
-
-
-
-
- IOException:IO流异常
- ParseException:转换日期格式的不匹配
-
-
-
- 区分编译和运行的异常
-
-
- 直接父类是Exception的异常就是编译时异常
- 直接父类是RuntimeException的就是运行时异常
-
二、异常处理的两种方式【重点】
ctrl + alt +t
1.抛出异常(甩锅式处理)
throws:抛出的是异常类
throw :抛出的是异常对象
- 使用throws进行甩锅(抛出异常)
- 抛给谁:抛给使用者
- 抛到哪里:在方法签名后面抛出,抛出的是异常名称
- 抛出异常对象(主动抛出):throw
- 在方法体里面抛出
- e.printStackTrace:打印错误信息及位置
- e.getMessage:只打印错误信息
- throw new 错误信息(e)
2.捕获异常 自行处理(背锅式处理)
语法:
try{
// 可能会发生的异常代码
}catch(异常的类型:异常的类名 参数名){
// 捕获异常进行处理
}finally{
// 异常处理的出口,一般用来关闭流,释放内存空间,或者用来释放锁
不管有没有异常发生都要执行的区域,除非在这个代码之前结束了JVM虚拟机
}
3.捕获异常处理的执行流程(try catch)
/*
try catch的执行流程
1.try是入口,只要try里面的某一句代码出异常,就会去匹配相应的catch
2.匹配上就打印相应的错误信息,程序就结束;
*/
五、自定义异常【掌握】
1.自定义异常
- 自己定义一种异常,自己定义一个类,这个要么是Exception的子类,要么是RuntimeException的子类
- 定义方式
1.
pbulic class 类名 extends Exception{//定义编译时异常
}
或
pbulic class 类名 extends RuntimeException{//定义运行时异常
}
2.在类里面书写两个构造方法
三、线程
- 进程:可以看成是在计算机当中运行的一大块代码(一个应用软件)
-
- 一个进程在运行中会有独立的一块内存
- 一个进程中可以有多个线程,至少得有一个线程;
- 线程:可以看成是在计算机当中运行的一小块代码(某个软件里的某个功能)
-
- 每一个功能可以看作是一个线程,线程也有独立的内存,但是共用的进程内存
- 线程是进程中的最小单位
- 执行流程
-
-
- 进程启动-->线程进入内存-->CPU分配时间片(时间片极小的时间单位)-->随机线程拿到时间片-->线程执行;
- 直到线程的功能全部执行完毕为止
-
-
- 线程的执行其实是交替的
四、多线程
- 概念:在一个进程中有多个独立存在的线程,为什么一个软件要设计多线程
-
- 线程越多,执行效率越高
- 可以利用多核优势