数据处理并行操作更容易利用计算机多核资源
java8 提供的 Stream API 类似于 like-Unix 系统中的管道符 | ,可以将一系列数据处理组合成流水线,java8会将这些计算处理利用多CPU 执行,不再需要开发者像之前利用 Thread 并行处理,在 java8 中这一优势对于开发者是透明的。开发者可以站在更高的抽象层次编写代码,编写代码处理数据效率会更高,无论是开发人员的写代码还是处理数据所需时间更少
不过并行与共享数据是互斥的,这意味着你的处理数据的流水线中的操作行为必须是无副作用的,例如不可以修改共享变量,否则多个线程不受控制的修改会造成数据的混乱。事实上函数编程中推荐所有函数行为都应该是这样的,输入参数,函数返回预期的结果,在此期间函数不对外部造成任何影响(例如:不修改输入变量/共享变量),类似于纯粹的数学函数。
向方法传递代码更简便
在 java8 之前向函数传递行为的方式是通过匿名参数,例如自定义比较器,在 java8 中可以通过更简便易读的方式去写。在 java8 以前只能将常规类型例如 int,string 或者对象引用传入方法,在 java8 中提出了方法引用和lambda,现在使用 java8写的代码可以向方法传入一个方法的引用或者直接传入行为的实现 Lambda.
这意味着以后的 java 代码,方法不仅可以传递值还可以传递行为。
代码简洁易读
java8 以前通过 Collection API 对数据进行存取和操作,java8提供了 Stream API 可以对数据以流水线的方式操作数据更为简洁方便,这些提供的 Stream API 都遵循了无副作用,使用 Stream API 操作数据代码更加简洁易懂,效率也更高。
接口提供默认方法
java8 中允许接口提供默认实现,使用 default 关键字。