首页 > java > jdk8 > 1.JDK8新增语法特性简介

1.JDK8新增语法特性简介

1 JDK8新增主要语法特性

  • 函数接口(Functional Interface)
  • 拉姆达(Lambda)表达式
  • 方法引用(Method Reference)
  • default方法(defender方法)
  • 批量数据操作(bulk dataoperations)

2 java函数接口(Functional Interface)

只包含一个抽象方法的接口,所以也称为SAM(Single Abstract Method)类型的接口.

单方法接口(Single Abstract Method)

单方法接口顾名思义就是接口中只有一个方法.

举个栗子

Runnable接口中,只有一个run()方法.这个Runnalbe接口即为单方法接口,也叫函数式接口.JDK8中新增了许多函数接口,一个重要的原因是为了支持新增加的Lambda表达式.

3 java Lambda表达式

Java的Lambda表达式是一种匿名方法.可以将函数接口中的函数作为方法参数处理,使代码更加简洁.在Java中Lambda表达式返回值是一个对象,这个对象必须是单方法接口(Single Abstract Method)对象.

4 java 方法引用(Method Reference)

Lambda表达式的一种特殊形式.当一个lambda表达式body中仅仅是调用某个方法,这种情况下,使用方法引用替代lambda表达式,从形式上直接引用这个方法,这就比在lambda表达式body中引用在形式上更简洁一些.

4 java default方法

Default方法可以认为是Lambda表达式和JDK类库之间的桥梁.引入Default方法的主要目的是为了升级标准JDK接口,另外也是为了我们最终能在JDK8中顺畅使用Lambda表达式.

5 java 批量数据操作(bulk dataoperations)

引入批量数据操作的目的是应用lambda函数来实现包含并行操作在内的多种数据处理功能,而支持并行数据操作是其关键内容.这个并行操作是在Java7 java.util.concurrency的Fork/Join机制上实现的.

6 总结

Lambda表达式极大地提升的代码可读性并使Java语言更加具有表现力,尤其当我们使用新增的数据流API时.相应地,'default方法对API升级至关重要,它用来把Lambda表达式集成到集合API中,为我们使用提供便利.所有新特性的终极目标却是引入并行类库和无缝地利用多核硬件的优势.这些新的变化,将使我们能够以更加高效的方式充分利用Java语言.

7 参考文章

http://zeroturnaround.com/rebellabs/java-8-revealed-lambdas-default-methods-and-bulk-data-operations/

转载请保留原文链接.