-
JDK9 新特性详解,2017-09-21正式发布
Java 9 新特性
Java 9 发布于 2017 年 9 月 22 日,带来了很多新特性,其中最主要的变化是已经实现的模块化系统。
接下来我们会详细介绍 Java 9 的新特性。
Java 9 新特性
模块系统:模块是一个包的容器,Java 9 最大的变化之一是引入了模块系统(Jigsaw 项目)。
REPL (JShell):交互式编程环境。
HTTP 2 客户端:HTTP...
2019-02-27 07:48:49 |
Java
-
JDK8 新特性详解,2014-03-18正式发布
java8
简介:JDK8 的主要新特性六个:Lambda、Stream、Date、新注解、函数编程、并发,前两者主要用于集合中。
JDK8 函数编程详解(本篇博客就不介绍了,太多了)
1、Lambda演变过程
@Data
@ToString
@NoArgsConstructor
@AllArgsConstructor
public class Student {
//名字
...
2019-02-27 07:48:49 |
Java
-
java8-23-optional 优雅的避免 NPE
Optional
jdk8 引入了 Optional,用来避免 NPE。
用Optional取代null
如果你作为Java程序员曾经遭遇过NullPointerException,请举起手。如果这是你最常遭遇的异常,请继续举手。非常可惜,这个时刻,我们无法看到对方,但是我相信很多人的手这个时刻是举着的。
我们还猜想你可能也有这样的想法:“毫无疑问,我承认,对任何一位Java程序员...
2019-02-27 07:48:49 |
Java
-
Java8-22-默认方法
默认方法
传统接口的缺陷
传统上,Java程序的接口是将相关方法按照约定组合到一起的方式。实现接口的类必须为接口中定义的每个方法提供一个实现,或者从父类中继承它的实现。但是,一旦类库的设计者需要更新接口,向其中加入新的方法,这种方式就会出现问题。现实情况是,现存的实体类往往不在接口设计者的控制范围之内,这些实体类为了适配新的接口约定也需要进行修改。
由于Java 8的API在现存的接口...
2019-02-27 07:48:49 |
Java
-
Java8-21-lambda 测试调试
测试和调试
现在你的代码中已经充溢着Lambda表达式,看起来不错,也很简洁。
但是,大多数时候,我们受雇进行的程序开发工作的要求并不是编写优美的代码,而是编写正确的代码。
通常而言,好的软件工程实践一定少不了单元测试,借此保证程序的行为与预期一致。
测试用例
你编写测试用例,通过这些测试用例确保你代码中的每个组成部分都实现预期的结果。
比如,图形应用的一个简单的 Point 类...
2019-02-27 07:48:49 |
Java
-
Java8-20-lambda 设计模式
使用 Lambda 重构面向对象的设计模式
语言特性对于技术的推动
新的语言特性常常让现存的编程模式或设计黯然失色。
比如, Java 5中引入了 foreach 循环,由于它的稳健性和简洁性,已经替代了很多显式使用迭代器的情形。
Java 7中推出的菱形操作符(<>)让大家在创建实例时无需显式使用泛型,一定程度上推动了Java程序员们采用类型接口(type interf...
2019-02-27 07:48:49 |
Java
-
Java8-19-lambda 重构代码
重构、测试和调试
通过本书的前七章,我们了解了Lambda和Stream API的强大威力。
你可能主要在新项目的代码中使用这些特性。如果你创建的是全新的Java项目,这是极好的时机,你可以轻装上阵,迅速地将新特性应用到项目中。然而不幸的是,大多数情况下你没有机会从头开始一个全新的项目。很多时候,你不得不面对的是用老版Java接口编写的遗留代码。
这些就是本章要讨论的内容。我们会介绍几...
2019-02-27 07:48:49 |
Java
-
Java8-18-Stream Spliterator
Spliterator
简介
Spliterator 是Java 8中加入的另一个新接口;这个名字代表“可分迭代器”(splitableiterator)。
和 Iterator 一样,Spliterator 也用于遍历数据源中的元素,但它是为了并行执行而设计的。
虽然在实践中可能用不着自己开发 Spliterator ,但了解一下它的实现方式会让你对并行流的工作原理有更深入的了解。...
2019-02-27 07:48:49 |
Java