首页 > 技术文章 > 《Java 8 实战》读书笔记

IvySue 2017-04-19 10:49 原文

新特性:

 

1,流处理

Java 8 在java.util.stream中添加了一个Stream API; Stream<T>就是一系列T类型的项目,也可以看作一个迭代器。Stream API的很多方法可以链接起来形成一个复杂的流水线。

 

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

Java 8 增加了把方法作为参数传递给另一个方法的能力。

 

3,方法引用---::

Before Java 8:

File[] hiddenFiles = new File(".").listFiles(new FileFilter() {
    public boolean accept(File file) {
        return file.isHidden();
    }
})

After Java 8:

File[] hiddenFiles = new File(".").listFile(File::isHidden);

方法引用::把这个方法作为值传递给ListFiles方法。

 

4,Lamda---匿名函数

(int x) -> x+1 表示调用给定参数x,就返回x+1的值。

 

5, 默认方法

接口中的方法主体由接口提供,而不是实现类提供。Java 8 在接口声明中使用default关键字来表示这一点。

例如,在Java 8里,可以直接对List调用sort方法。它是用Java 8 List接口中的默认方法实现的:

Interface List<E> {

   default void sort(Comparator<? super E> c) {
         Collections.sort(this,c);
    }
}

 

6, 并行

一般集合处理(根据标准筛选数据,提取数据或给数据分组)常常可以并行化,在两个CPU上筛选列表,可以让一个CPU处理列表的前一半,第二个CPU处理后一半,这成为分支步骤(1)。CPU随后对各自的半个列表作筛选(2)。最后, 一个CPU把两个结果合并起来(3)。

 

7,Optional类

可以避免NullPointerException

 

推荐阅读