免费建站网站一级大录像不卡在线看一个公司怎么做网站都放些什么
1、接口中默认方法修饰为普通方法
在jdk8之前,interface之中可以定义变量和方法,变量必须是public、static、final的,方法必须是public、abstract的,由于这些修饰符都是默认的。
 接口定义方法: public抽象方法需要子类实现
 接口定义变量: public、static、final
在JDK 1.8开始支持使用static和default修饰可以写方法体。static和default方法可以定义多个。
- 实现类可以重写default方法,不可以重写static方法
 - static方法的调用必须使用[接口对象名.]调用
 
1.2、代码案例

2、Lambda表达式
2.1、什么是Lambda表达式
Java中使用Lambda表达式的规范,必须是为函数接口
 函数接口的定义:在该接口中只能存在一个抽象方法,该接口称作为函数接口
Java中的Lambda表达式的规范,必须是为函数接口。
 函数接口的定义:在该接口中只能存在一个抽象方法,该接口称作为函数接口
 
2.2、Lambda表达式的规范
使用Lambda表达式依赖于函数接口
- 1.在接口中只能够允许有一个抽象方法
 - 2.在函数接口中定义 object类中方法
 - 3.使用默认或者静态方法
 - 4.@FunctionalInterface表示该接口为函数接口


 
3、Stream流
3.1、sorted排序

3.2、reduce并行计算

3.3、Max、Min取最大、最小

3.4、anyMatch判断集合是否含有某个元素

3.5、allMatch判断集合某个元素全部匹配

3.6、filter过滤

3.7、skip+limit实现分页

4、方法引入
方法引入需要结合 lambda表达式能够让代码变得更加精简。
- 静态方法引入 类名::(静态)方法名称
 - 对象方法引入 类名::实例方法名称
 - 实例方法引入 new对象 对象实例::方法引入
 - 构造函数引入 类名::new
 
需要遵循一个规范:
 方法引入方法参数列表、返回类型与函数接口参数列表与返回类型必须要保持一致。|
4.1、静态方法引入

4.2、实例方法引入

4.3、构造方法引入

5、Optional
- Optional类是一个可以为null的容器对象。如果值存在则 isPresent()方法会返回true,调用get(方法会返回该对象。
 - Optional 是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检测。
 - Optional类的引入很好的解决空指针异常。
 
5.1、ofNullable,Of,isPresent判断参数是否为空
- ofNullable(可以传递一个空对象)
 - Of(不可以传递空对象)


 
5.2、get()获取元素

5.3、orElse为空值设置默认值

5.4、配合filter()使用

5.5、ifPresent值不为空则执行

5.6、orElseGet

 
6、时间日期API
6.1、传统时间格式化存在线程安全问题

6.2、LocalDate保证时间格式化线程安全

6.2、LocalDate、LocalTime、LocalDateTime
LocalDate、 LocalTime、 LocalDateTime类的实例是不可变的对象,分别表示使用ISO-8601日历系统的日期、时间、日期和时间。它们提供了简单的日期或时间,并不包含当前的时间信息。也不包含与时区相关的信息。
lSO-8601日历系统是国际标准化组织制定的现代公民的日期和时间的表示法

6.3、Instant计算机读的时间
时间戳计算机读的时间(以Unix元年:1970年1月1日00:00:00到某个时间之间的毫秒值)
 
6.4、Duration计算[时间]间隔,Period计算[日期]间隔

 
6.5、TemporalAdjuster时间矫正器
有时我们可能需要获取例如:将日期调整到“下个周日”等操作。
TemporalAdjusters :该类通过静态方法提供了大量的常用TemporalAdjuster的实现。
 [ˈtempərəl] [əˈdʒʌstərz]
 
 
6.6、DateTimeFormatter

6.7、ZonedDate、ZonedTime、ZonedDateTime时区的处理

 
