JDK各版本新特性
2022-06-05 16:47:06 0 举报
AI智能生成
登录查看完整内容
jdk各版本新特性
作者其他创作
大纲/内容
1、必须有函数式接口
1、前提
() -> System.out.println("");
1、无参数无返回值
1、(x) -> System.out.println(x);
2、x -> System.out.println(x);
2、有一个参数无返回值
3、有两个参数并且有返回值,并且lambda体中有多条语句
4、有两个参数并且有返回值,并且lambda体中有一条语句,大括号和省略号都可以不用写
5、lambda表达式的参数列表可以不用写,因为JVM编译器通过上下文可以推断出数据类型,即类型推断
1、语法格式
1、lambda表达式
接口汇总只有一个抽象方法的接口,称为函数式接口,可以使用注解@FunctionalInterface
1、accept(T t)
1、Consumer<T> 消费型接口
1、T get()
2、Supplier<T> 供给型接口
1、R apply(T t)
1、tet(T t)
4、Predicate<T> 断言型接口
内置函数式接口
2、函数式接口
若果Lambda体重的内容有方法已经实现了,我们可以使用方法引用
Lambda体重调用方法的参数列表和返回值类型,要与函数式接口中抽象方法的函数列表和返回值类型保持一致
1、概述
1、对象::实例方法名
2、类::静态方法名
3、类::实例方法名
2、语法格式
3、方法引用引用
Suplier<Employee> su = Employee::new; 匹配无参构造器
需要调用的构造器参数需要与函数式接口的参数个数保持一致
2、注意
4、构造器引用
Type::new
5、数组引用
是数据渠道,用于操作数据源(集合,数组等)锁生成的元素序列。集合讲的是数据,流讲的是计算
定义
Stream 自己不会存储元素
Stream不会改变源对象,相反,他们会返回一个持有结果的新的Stream
Stream操作是延迟执行的,这移位着他们会等到需要结果的时候才执行
注意
1、通过Collection系列结合提供的stream() 串行流或parallelStream()并行流
2、通过Arrays中 的静态方法stream() 获取数组流
3、通过Stream类中的静态方法of()
1、迭代
2、生成
4、创建无限流
1、创建Stream
1、filter
截断流,使其元素不超过给定数量
2、limit
跳过元素,返回一个扔掉了前n个元素的流,若流中元素不足n个,则返回一个空流,与limit(n)互补
3、skip(n)
筛选,公国流锁生成元素的hasCode 和 equals去除重复元素
4、distinct
1、筛选和切片
flatMap 接收一个函数作为参数,将流中的每个值都转换成一个流,然后把所有流连接成一个流
List的场合可以 类比创建一个新的List并执行List add 和 addAll
map 将对象转换为其他对象
2、映射
Comparable指定的顺序
1、sorted() 自然排序 Comparable
2、sorted(Comparator com) 定制排序
3、排序
1、allMatch 检查是否匹配所有元素
2、anyMatch 检查是否至少匹配一个元素
3、noneMatch 检查是否没有匹配所有元素
4、findFirst 返回第一个元素
5、findAny 返回当前流中的任意元素
6、count 返回流中元素的总个数
7、max 返回流中的最大值
8、min返回流中最小值
4、查找与匹配 filter
2、中间操作
5、规约 reduce 可以将流中元素反复结合起来,得到一个值
搜集所有人的名字
6、搜集 collect
3、终止操作
2、操作步骤
6、Stream
当执行新的任务时,他可以拆分成更小的任务执行,并将小的任务加到线程中,然后再送一个随机的线程队列偷一个放到自己的队列中java8中Stream API可以申明性通过parallel()与sequential()在并行流与顺序流之间切换
1、工作窃取模式
2、效率比较高可以更好的利用cpu资源
7、并行流和串行流 Fork/Join
1、Optional.of 创建一个 Optional 实例
2、Optional.empty() 创建一个空的 Optional 实例
4、isPresent() : 判断是否包含值
5、orElse(T t) : 如果调用对象包含值,返回该值,否则返回t
6、orElseGet(Supplier s) :如果调用对象包含值,返回该值,否则返回 s 获取的值
7、map(Function f): 如果有值对其处理,并返回处理后的Optional,否则返回 Optional.empty()
8、flatMap(Function mapper):与 map 类似,Function要求返回值必须是Optional
8、Option容器类
1、接口中可以用default中定义默认方法
2、类优先原则-如果一个接口中定义了一个方法,而另一个父类中也定义了同名方法,则执行类中的方法
3、接口多实现中都有同名的默认方法,则接口必须重写改方法
9、接口默认方法
10、接口静态方法 与普通静态方法一致
1、线程安全问题
1、问题
1、传统时间函数
1、DateTimeFormatter
2、LocalDate
3、LocalTime
1、now 现在
1、of 通过参数年月日,构建时间
4、LocalDateTime
1、now() 默认获取utc时间 格林尼治时间 本地时差 8小时
2、atOffset(ZoneOffset.xxxx) 带偏移量的时间
3、toEpochMilli
5、Instance 已Unix元年为起点时间戳
6、Duration 两个时间之间的间隔
7、Period 两个日期之间的间隔
8、ZoneDate
9、ZoneTime
1、ZoneId.of("xx/shanghai")
10、ZoneDateTime
2、新的api
11、时间函数
1、必须先创建容器
2、添加RepeatAble注解
12、重复注解
1、Java 8 新特性
JDK各版本
0 条评论
回复 删除
下一页