Java Java Reinforcement Java 8 新特性总结 花了一个多星期的时间把Java 8 实战过了一遍, 我发现计算机的书, 其实都相当于字典的性质, 只是让你了解有这方面的技术, 真正要用到了, 还是要具体看如何编写. 每本书都是一个字典. 现在就提纲挈领再来过一遍, 然后尽量在之后的代码中, 使用这些新特性 lambda表达式 流 默认方法 Opt 花了一个多星期的时间把Java 8 实战过了一遍, 我发现计算机的书, 其实都相当于字典的性质, 只是让你了解有这方面的技术, 真正要用到了, 还是要具体看如何编写. 每本书都是一个字典. 现在就提纲挈领再来过一遍, 然后尽量在之后的代码中, 使用这些新特性 lambda表达式 流 默认方法 Optional对象 CompletableFuture 新的时间API lambda表达式 lambda 表达式可以用于传递行为给代码, 其本质是对匿名对象的简写. 方法引用是lambda表达式的一种简便使用方法, 有三种. 函数式接口和java.util.functions中的各种接口可以直接拿来使用, 也可以根据需要自己实现泛型的这些接口. 注意在策略模式中使用lambda表达式, 或者将策略代码柯里化以达到减少代码重复的目的. 流 在处理顺序数据或者是集合的时候, 只要用到迭代的地方, 都要想到优先改成流模式. 还要注意flatMap和分组的使用, 都可以让流更加好用. 默认方法 默认方法让一个接口代表一套易于扩展的完整功能变成了可能. 如果自行编写接口的话, 注意可以适当的编写默认方法. 如果自己编写了一个数据结构的类, 可以考虑编写一个接口来将工具方法放入其中. 注意默认方法解决冲突的规则: 类中的方法优先, 然后是最详细的接口中的方法优先, 如果手工指定, 需要使用接口名.super.方法名来具体指定. Optional对象 在处理流的部分, 很多时候会使用到Optional对象, 如果处理可能为null的引用, 优先考虑使用Optional类. CompletableFuture 这部分没有详细看, 是对Future的增强, 在需要多个Future对象协同工作的时候可以考虑, 另外反射式的Web编程后续还需要学习. 新的时间API 在使用时间的时候, 优先考虑LocalDate, LocalTime, Instant, Duration 和 Period类, 在需要时间片段的时候可以应用Duration的静态方法. 后记 后记感觉不应该是后记, 而是后继...后续还要继续看Java 9, 11.....