1.时间日期类
1.1 Date类(应用)
- 计算机中时间原点
1970年1月1日 00:00:00
- 时间换算单位
1秒 = 1000毫秒
Date类概述 Date 代表了一个特定的时间,精确到毫秒
- Date类构造方法
示例代码:
1.2 Date类常用方法(应用)
常用方法:
示例代码:
1.3 SimpleDateFormat类(应用)
- SimpleDateFormat类概述
SimpleDateFormat是一个具体的类,用于以区域设置敏感的方式格式化和解析日期。 我们重点学习日期格式化和解析
- SimpleDateFormat类构造方法
- SimpleDateFormat类的常用方法
格式化(从Date到String)
public final String format(Date date):将日期格式化成日期/时间字符串
解析(从String到Date)
public Date parse(String source):从给定字符串的开始解析文本以生成日期
示例代码:
1.4 时间日期类练习 (应用)
需求:
秒杀开始时间是2020年11月11日 00:00:00,结束时间是2020年11月11日 00:10:00,用户小贾下单时间是2020 年11月11日 00:03:47,用户小皮下单时间是2020年11月11日 00:10:11,判断用户有没有成功参与秒杀活动
实现步骤:
1. 判断下单时间是否在开始到结束的范围内
2. 把字符串形式的时间变成毫秒值
代码实现:
2.JDK8时间日期类
2.1 JDK8新增日期类 (理解)
LocalDate 表示日期(年月日)
LocalTime 表示时间(时分秒)
LocalDateTime 表示时间+ 日期 (年月日时分秒)
2.2 LocalDateTime创建方法 (应用)
方法说明:
示例代码:
2.3 LocalDateTime获取方法 (应用)
方法说明:
代码示例:
2.4 LocalDateTime转换方法 (应用)
方法说明:
代码示例:
2.5 LocalDateTime格式化和解析 (应用)
方法说明:
代码示例:
2.6 LocalDateTime增加或者减少时间的方法 (应用)
方法说明:
示例代码:
2.7 LocalDateTime减少或者增加时间的方法 (应用)
方法说明:
示例代码:
2.8 LocalDateTime修改方法 (应用)
方法说明:
代码示例:
2.9 Period (应用)
方法说明:
代码示例:
2.10 Duration (应用)
方法说明:
代码示例:
3.异常
3.1 异常(记忆)
- 异常的概述
异常就是程序出现了不正常的情况
- 异常的体系结构
3.2 编译时异常和运行时异常的区别(记忆)
- 编译时异常
都是Exception类及其子类
必须显示处理,否则程序就会发生错误,无法通过编译
- 运行时异常
都是RuntimeException类及其子类
无需显示处理,也可以和编译时异常一样处理
图示:
3.3 JVM默认处理异常的方式(理解)
如果程序出现了问题,我们没有做任何处理,最终JVM 会做默认的处理,处理方式有如下两个步骤:
- 把异常的名称,错误原因及异常出现的位置等信息输出在了控制台
- 程序停止执行
3.4 查看异常信息 (理解)
3.5 throws方式处理异常(应用)
定义格式:
public void 方法() throws 异常类名 { }
示例代码:
注意事项:
这个throws格式是跟在方法的括号后面的
编译时异常必须要进行处理,两种处理方案:try...catch …或者 throws,如果采用 throws 这种方案, 在方法上进行显示声明,将来谁调用这个方法谁处理
运行时异常因为在运行时才会发生,所以在方法后面可以不写,运行时出现异常默认交给jvm处理
3.6 throw抛出异常 (应用)
格式
throw new 异常();
注意
这个格式是在方法内的,表示当前代码手动抛出一个异常,下面的代码不用再执行了
throws和throw的区别:
示例代码:
3.7 try-catch方式处理异常(应用)
定义格式:
执行流程
- 程序从 try 里面的代码开始执行
- 出现异常,就会跳转到对应的 catch 里面去执行
- 执行完毕之后,程序还可以继续往下执行
示例代码:
注意
1. 如果 try 中没有遇到问题,怎么执行? 会把try中所有的代码全部执行完毕,不会执行catch里面的代码
2. 如果 try 中遇到了问题,那么 try 下面的代码还会执行吗? 那么直接跳转到对应的catch语句中,try下面的代码就不会再执行了 当catch里面的语句全部执行完毕,表 示整个体系全部执行完全,继续执行下面的代码
3. 如果出现的问题没有被捕获,那么程序如何运行? 那么try...catch就相当于没有写.那么也就是自己没有处理. 默认交给虚拟机处理.
4. 同时有可能出现多个异常怎么处理? 出现多个异常,那么就写多个catch就可以了. 注意点:如果多个异常之间存在子父类关系.那么父类一定要 写在下面
3.8 Throwable成员方法(应用)
常用方法:
示例代码:
3.9自定义异常(应用)
自定义异常概述
当Java中提供的异常不能满足我们的需求时,我们可以自定义异常
实现步骤
1. 定义异常类 2. 写继承关系 3. 提供空参构造 4. 提供带参构造
代码实现
异常类
学生类
测试类:
4.Optional
4.1获取对象(应用)
Optional概述
可能包含或不包含非null值的容器对象
方法介绍:
示例代码:
4.2常用方法(应用)
方法介绍:
示例代码:
4.3处理空指针的方法(应用)
方法介绍:
代码示例: