jdk新特性
1.日期类:
-
:用于表示时间LocalTime
- 线程安全,精确到纳秒级别,构造器是私有的,一般获取系统时间一般直接使用静态方法
now()
-
计算2个时间的差值until(要比较的第二个电话,单位)
- 线程安全,精确到纳秒级别,构造器是私有的,一般获取系统时间一般直接使用静态方法
-
:用于表示日期LocalDate
- 线程安全,
-
:用于表示日期时间LocalDateTime
- 同时处理日期和时间就可以用这个类
- 观察源码,
本质就是localDateTime
和LocalDate
LocalTime
将转化为Date对象:
localDateTime
将date对象转化为localDateTime
- 获取LocalDateTime的Instance对象
- 然后使用Date.from(instance对象),这样就转化好了
根据提供的偏移量获取时间毫秒数
LocalDateTime.ofInstance(date.toINstance,ZonId.SystemDefault)
- toEpochSecond(zoneOffset.UTC);
-
:用于日期时间格式化处理DateTimeFormatter
- 线程安全的,
DateTimeFormatter.ofPattern(日期格式)
- 线程安全的,
2.Lambda表达式
语法:
( )参数部分,有几个写几个,只需要写参数名,类型会自动推断,有一个参数可以不写括号
->引用部分,指向具体的实现
{}函数的实现体,如果只有一行代码需要被执行,则可省略。
函数式接口:
在接口的顶部使用
@functionalInterface
进行标注,该接口中只能由一个未实现的方法,
方法引用:
- 静态方法引用:类名::静态方法名
- 实例方法引用:对象名::实例方法名
- 类实例方法引用:类名::实例方法名
- 构造方法引用:类名::new 类名
当要使用实例方法引用,但是没有对象时,就用类实例引用
3.StreamAPI
不是java.io:输入输出流,主要针对集合框架一个简化操作,
核心:
- 获取流
- stream自带的of()获取流
- Arrays类的Stream()方法
- Collection接口提供的stream()方法
- 中间操作,返回结果还是Stream
- 结果操作