之前断断续续的学习JDK 1.8,抽空总结一下JDK 1.8的新特性以及使用方法,在加强自己记忆的同时,希望可以帮助其他人了解并使用JDK 1.8。
Java8是Java1.5以后最重要的一个版本,在Java1.5的基础上做了很多有趣的改变,这些改变让我们编程更加容易。其中包括:支持行为参数化、默认方法,添加Lambda表达式(匿名函数)、Stream(流)API,Optional API以及新的日期相关API。新的特性能帮助我们减少平时开发的代码量,同时加强的代码的灵活性、拓展性。此外,Stream还能够加强程序多线程能力。下面将逐步的介绍各个新特性的使用方式,包括概念的介绍,以及代码演示。
目前计划是将JDK 1.8的内容分为三部分,分别关于Lambda表达式,流(Stream),以及一些其他的新特性。因为内容可能会很多,所以会慢慢更新,感觉有帮助的朋友可以关注收藏后慢慢看。本文是在学习《Java 8 实战》后的总结,如果想更加详细的学习,请参考书籍。
1.1 将代码传递给方法
编程语言的主要目的在于操作值,在程序执行期间,能够互相传递的(可以作为参数传递,可以从子程序中返回,可以赋值给变量),一般被称为一等值(或者是一等公民),不能传递的被称为二等公民。之前的JDK版本,基本类型或者是引用类型,这些都是一等公民,可以传递给方法。而类(类传给方法传递的是类的引用,而不是类的本身)和方法则是二等公民。 在JDK8中,添加了新的引用:方法引用。方法也可以直接传递,变成了一等公民。除此之外,JDK8还增加了匿名函数(Lambda函数),和匿名类相似,对于某些只使用一两次的方法,我们可以使用匿名方法加快我们的开发效率,是代码更干净。
1.2 Java8中的Stream
在JDK1.8之前,我们处理集合必须使用使用for或者迭代器去遍历这些集合(外部迭代),并且在遍历过程中进行业务操作。所以,如果没有注释,我们经常很难看出这些代码是干嘛的(有时就算有也很难看出)。但是,如果使用JDK1.8提供的Stream(内部迭代),就可以帮助我们更方便的处理集合。此外,使用Stream可以让我们“免费”的并行遍历操作数组。
- Java JDK1.8 核心特性详解------Stream(流)的基本介绍
- Java JDK1.8 核心特性详解------Stream(流)的使用
- Java JDK1.8 核心特性详解------Stream进阶
1.3 JDK1.8其他特性
在前面的章节中,我对流的使用进行了基本的介绍。在下面的章节,我将会介绍JDK 1.8的其他特性和新增的一些类,例如默认方法,新的日期类用来代替过期Date和难以使用Calendar类,添加Optional类取代null,添加了组合式异步编程等。这些都帮助我们更加方便安全的使用Java进行编程。
- Java JDK1.8 核心特性详解------默认方法
- Java JDK1.8 核心特性详解------用Optional代替null
- Java JDK1.8 核心特性详解------新的日期和时间API
- Java JDK1.8 核心特性详解------实现异步API