当前位置 博文首页 > 青色刀客的专栏:Java 8新特性终极指南
编者注:Java 8已经公布有一段时间了,种种迹象表明Java 8是一个有重大改变的发行版。
在Java Code Geeks上已经有大量的关于Java 8 的教程了,像玩转Java 8——lambda与并发,Java 8 Date Time API 教程: LocalDateTime和在Java 8中抽象类与接口的比较。
我们也在其他地方引用了15个必读的Java 8教程。当然,我们也探究了Java 8的一些不足之处,比如Java 8的“黑暗面”。
现在,是时候把所有Java 8的重要特性收集整理成一篇单独的文章了,希望这篇文章能给你带来阅读上的乐趣。开始吧!
2.1?Lambdas表达式与Functional接口
2.2?接口的默认与静态方法
2.3?方法引用
2.4?重复注解
2.5?更好的类型推测机制
2.6?扩展注解的支持
3.1?参数名字
4.1?Optional
4.2?Streams
4.3?Date/Time API (JSR 310)
4.4?JavaScript引擎Nashorn
4.5?Base64
4.6?并行(parallel)数组
4.7?并发(Concurrency)
5.1?Nashorn引擎: jjs
5.2?类依赖分析器: jdeps
Java虚拟机(JVM)的新特性
总结
更多资源
毫无疑问,Java 8发行版是自Java 5(发行于2004,已经过了相当一段时间了)以来最具革命性的版本。Java 8 为Java语言、编译器、类库、开发工具与JVM(Java虚拟机)带来了大量新特性。在这篇教程中,我们将一一探索这些变化,并用真实的例子说明它们适用的场景。
这篇教程由以下几部分组成,它们分别涉及到Java平台某一特定方面的内容:
不管怎么说,Java 8都是一个变化巨大的版本。你可能认为Java 8耗费了大量的时间才得以完成是为了实现了每个Java程序员所期待的特性。在这个小节里,我们将会涉及到这些特性的大部分。
Lambda表达式(也称为闭包)是整个Java 8发行版中最受期待的在Java语言层面上的改变,Lambda允许把函数作为一个方法的参数(函数作为参数传递进方法中),或者把代码看成数据:函数式程序员对这一概念非常熟悉。在JVM平台上的很多语言(Groovy,Scala,……)从一开始就有Lambda,但是Java程序员不得不使用毫无新意的匿名类来代替lambda。
关于Lambda设计的讨论占用了大量的时间与社区的努力。可喜的是,最终找到了一个平衡点,使得可以使用一种即简洁又紧凑的新方式来构造Lambdas。在最简单的形式中,一个lambda可以由用逗号分隔的参数列表、–>符号与函数体三部分表示。例如: