JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

读Java8函数式编程笔记04_类库

wys521 2025-03-12 21:28:35 精选教程 40 ℃ 0 评论

1.默认方法

1.1.接口中定义的包含方法体的方法,方法名有default关键字做前缀

1.1.1.在任何接口中,无论函数接口还是非函数接口,都可以使用该方法

1.2.Collection接口

1.2.1.stream方法

1.3.Iterable接口

1.3.1.forEach方法

1.4.虚方法

1.5.类中重写的方法优先级高于接口中定义的默认方法

1.5.1.能简化很多继承问题

1.5.2.任何时候,一旦与类中定义的方法产生冲突,都要优先选择类中定义的方法

1.5.3.如果类中重写的方法没有默认方法的优先级高,那么就会破坏已有的实现

1.5.4.为了在接口上向后兼容

2.接口的静态方法

2.1.Stream.of

2.2.Stream.range

2.3.Stream.iterate

3.改变了人们认识类库的方式,接口中的方法也可以包含代码体

4.函数接口的方法

4.1.使用Predicate,调用test方法

4.2.使用Function,调用apply方法

5.基本类型

5.1.int

5.2.内建在语言和运行环境中

5.3.基本的程序构建模块

6.装箱类型

6.1.Integer

6.2.普通的Java类

6.3.对基本类型的一种封装

7.在最坏的情况下,同样大小的数组,Integer[]要比int[]多占用6倍内存

8.装箱

8.1.将基本类型转换为装箱类型

9.拆箱

9.1.将装箱类型转换为基本类型

10.Stream类特殊处理的基本类型

10.1.IntStream

10.2.DoubleStream

10.3.LongStream

10.4.summaryStatistics方法

10.4.1.min

10.4.2.max

10.4.3.average

10.4.4.sum

11.BinaryOperator

11.1.一种特殊的BiFunction类型

11.2.参数的类型和返回值的类型相同

12.目标类型推导规则

12.1.如果只有一个可能的目标类型,由相应函数接口里的参数类型推导得出

12.2.如果有多个可能的目标类型,由最具体的类型推导得出

12.3.如果有多个可能的目标类型且最具体的类型不明确,则需人为指定类型

13.@FunctionalInterface

13.1.每个用作函数接口的接口都应该添加这个注释

13.2.Java中有一些接口,虽然只含一个方法,但并不是为了使用Lambda表达式来实现的

13.3.关闭资源是更改状态的另一种形式

13.4.该注释添加给一个枚举类型、类或另一个注释,或者接口包含不止一个抽象方法,javac就会报错

13.4.1.重构代码时,使用它能很容易发现问题

14.多重继承

14.1.使用super关键字是指向父类

14.2.InterfaceName.super这样的语法指的是继承自父接口的方法

15.三定律

15.1.类胜于接口。如果在继承链中有方法体或抽象的方法声明,那么就可以忽略接口中定义的方法

15.1.1.为了让代码向后兼容

15.2.子类胜于父类。如果一个接口继承了另一个接口,且两个接口都定义了一个默认方法,那么子类中定义的方法胜出

15.3.如果上面两条规则不适用,子类要么需要实现该方法,要么将该方法声明为抽象方法

16.接口和抽象类的区别

16.1.接口允许多重继承,却没有成员变量

16.2.抽象类可以继承成员变量,却不能多重继承

17.Optional

17.1.在一个值可能为空的建模情况下,使用Optional对象能替代使用null值

17.2.为核心类库新设计的一个数据类型,用来替换null值

17.2.1.使用null代表值不存在的最大问题在于NullPointerException

17.3.Optional对象鼓励程序员适时检查变量是否为空,以避免代码缺陷

17.4.它将一个类的API中可能为空的值文档化,这比阅读实现代码要简单很多

17.5.方法

17.5.1.get

17.5.2.orElse

17.5.2.1.当Optional对象为空时,该方法提供了一个备选值

17.5.3.orElseGet

17.5.3.1.接受一个Supplier对象,只有在Optional对象真正为空时才会调用

17.5.4.empty

17.5.5.ofNullable

17.5.5.1.将一个空值转换成Optional对象

17.5.6.isPresent

17.5.6.1.一个Optional对象里是否有值

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表