Java8实战读书笔记-第1章

最近意识到对java8的新特性不是很熟悉,所以开始读《Java8实战》,现在把读书笔记整理下.

一些概念

流处理

流是一系列数据项,一次只生成一项。程序可以从输入流中一个一
个读取数据项,然后以同样的方式将数据项写入输出流。一个程序的输出流很可能是另一个程序的输入流。

可以理解为对一个集合(输入流)进行各种拆卸组装,得到你想要的结果(输出流).

用行为参数化把代码传递给方法

有点类似策略模式,把对对象的筛选条件作为对象的属性(这一步叫行为参数化),然后通过传递此对象的方式,把这个对象作为参数传给方法,这样可以实现方法的复用,达到不同行为实现不同目的

新功能

1.2方法引用

Java 8中新增了函数——值的一种新形式。
方法引用::语法(即“把这个方法作为值”)将其传给另一个方法;

还有另一种写法(匿名函数或λ)

1.3流

普通for循环属于外部迭代;Stream流属于内部迭代

Collection主要是为了存储和访问数据,而Stream则主要用于描述对数据的计算。这里的关键点在于,Stream允许并提倡并行处理一个Stream中的元素。

parallelStream方法

1.4默认方法

Java 8的解决方法就是打破最后一环——接口如今可以包含实现类没有提供实现的方法签名了!那谁来实现它呢?缺失的方法主体随接口提供了(因此就有了默认实现),而不是由实现类提供。这就给接口设计者提供了一个扩充接口的方式,而不会破坏现有的代码。Java 8在接口声明中使用新的default关键字来表示这一点。

接口中用default关键字修饰的默认方法,实现类可以不实现.

1.5来自函数式编程的其他好思想

Optional类

在Java 8里有一个Optional类,如果你能一致地使用它的话,就可以帮助你避免出现NullPointer异常。它是一个容器对象,可以包含,也可以不包含一个值。Optional中有方法来明确处理值不存在的情况,这样就可以避免NullPointer异常了。换句话说,它使用类型系统,允许你表明我们知道一
个变量可能会没有值。

模式匹配
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值