jdk8
老马啸西风
Github: https://github.com/houbb
Email:houbinbin.echo@gmail.com
展开
-
java8-06-lambda 复合使用
文章目录复合Lambda 表达式的有用方法比较器复合A.逆序B.比较器链谓词复合negateandor函数复合andThencompose实际使用参考资料目录导航复合Lambda 表达式的有用方法Java8的好几个函数式接口都有为方便而设计的方法。具体而言,许多函数式接口,比如用于传递Lambda表达式的Comparator、Function和Predicate都提供了允许你进行复合的方法。...原创 2019-03-25 21:07:42 · 15660 阅读 · 0 评论 -
Java8-22-默认方法
文章目录默认方法传统接口的缺陷java8 的机制为什么要有默认方法?得与失不断演进的 API初始版本的 API用户实现第二版 API用户面临的窘境概述默认方法默认方法的实现解决刚才的问题多继承的问题默认方法的使用模式可选方法行为的多继承1. 类型的多继承2. 利用正交方法的精简接口3. 组合接口解决冲突的规则解决问题的三条规则运行结果个人收获参考资料目录导航默认方法传统接口的缺陷传统上,Ja...原创 2019-03-26 22:15:23 · 15070 阅读 · 0 评论 -
Java8-21-lambda 测试调试
文章目录测试和调试测试用例测试可见 Lambda 函数的行为测试使用 Lambda 的方法的行为调试查看栈跟踪Lambda表达式和栈跟踪lambda 表达式没有名称的问题lambda 方法引用没有名称的问题lambda 方法引用可以显示的场景使用日志调试peek个人收获拓展阅读参考资料目录导航测试和调试现在你的代码中已经充溢着Lambda表达式,看起来不错,也很简洁。但是,大多数时候,我们受...原创 2019-03-26 22:14:46 · 18418 阅读 · 2 评论 -
Java8-20-lambda 设计模式
文章目录使用 Lambda 重构面向对象的设计模式语言特性对于技术的推动lambda 对于设计模式的影响策略模式内容应用场景使用Lambda表达式模板方法例子使用Lambda表达式观察者模式例子使用Lambda表达式责任链模式代码使用Lambda表达式工厂模式常规实现使用Lambda表达式参考资料目录导航使用 Lambda 重构面向对象的设计模式语言特性对于技术的推动新的语言特性常常让现存的...原创 2019-03-26 22:14:10 · 15003 阅读 · 0 评论 -
Java8-19-lambda 重构代码
文章目录重构、测试和调试为改善可读性和灵活性重构代码改善代码的可读性从匿名类到 Lambda 表达式的转换转换需要注意的地方从 Lambda 表达式到方法引用的转换尽量使用方法引用使用静态辅助方法规约操作与方法引用结合从命令式的数据处理切换到 Stream增加代码的灵活性采用函数接口有条件的延迟执行我们学到的东西参考资料目录导航重构、测试和调试通过本书的前七章,我们了解了Lambda和Stre...原创 2019-03-26 22:13:34 · 15331 阅读 · 0 评论 -
Java8-18-Stream Spliterator
文章目录Spliterator简介接口拆分过程实现你自己的 Spliterator迭代版本以函数式风格重写单词计数器让 WordCounter 并行工作问题在哪里如何解决自定义函数解析运用 WordCounterSpliterator延迟绑定个人总结参考资料目录导航Spliterator简介Spliterator 是Java 8中加入的另一个新接口;这个名字代表“可分迭代器”(splitab...原创 2019-03-26 22:12:58 · 16640 阅读 · 1 评论 -
Java8-17-Stream 并行数据处理与性能
文章目录并行数据处理与性能并行流例子将顺序流转换为并行流测量流性能测量对前n个自然数求和的函数的性能流并行没有想象中那么好使用更有针对性的方法正确使用并行流高效使用并行流背后的实现原理拓展阅读参考资料目录导航并行数据处理与性能在前面三章中,我们已经看到了新的 Stream 接口可以让你以声明性方式处理数据集。我们还解释了将外部迭代换为内部迭代能够让原生Java库控制流元素的处理。这种方法让Ja...原创 2019-03-26 22:12:25 · 16396 阅读 · 1 评论 -
Java8-16-Stream 收集器 02-分区+收集器接口+自定义收集器
文章目录分区分区的概念例子获取为 true 的列表分区的优势partitioningBy 传递第二个收集器partitioningBy 和 maxBy 结合将数字按质数和非质数分区谓词的确定初步实现收集器接口接口的定义理解 Collector 接口声明的方法1. 建立新的结果容器:supplier 方法2. 将元素添加到结果容器:accumulator 方法3. 对结果容器应用最终转换:finis...原创 2019-03-26 22:11:41 · 15155 阅读 · 0 评论 -
Java8-15-Stream 收集器 01-归约与汇总+分组
文章目录用流收集数据收集器的用途收集器简介收集器用作高级归约归约和汇总计算总数-counting查找流中的最大值和最小值-minBy maxByCollectors.maxBy汇总总数 Collectors.summingXXXsummingIntsummingLong summingDouble平均数-averagingXXX统一获取汇总信息-summarizingXXXsummarizingI...原创 2019-03-26 22:11:00 · 15629 阅读 · 0 评论 -
Java8-14-Stream 数值流 构建流
文章目录数值流希望更加简化原始类型流特化1.映射到数值流2.转换回对象流3.默认值 OptionalInt数值范围构建流由值创建流空流由数组创建流由文件生成流由函数生成流:创建无限流1.迭代2. 生成generate 的其他用途个人感受参考资料目录导航数值流我们在前面看到了可以使用 reduce 方法计算流中元素的总和。例如,你可以像下面这样计算菜单的热量:int calories = m...原创 2019-03-25 21:15:19 · 15783 阅读 · 0 评论 -
Java8-13-Stream 使用实战
文章目录付诸实战领域:交易员和交易1. 找出2011年发生的所有交易,并按交易额排序(从低到高)。2. 交易员都在哪些不同的城市工作过?3. 查找所有来自于剑桥的交易员,并按姓名排序。4. 返回所有交易员的姓名字符串,按字母顺序排序。性能提升方案5. 有没有交易员是在米兰工作的?6. 打印生活在剑桥的交易员的所有交易额。所有交易中,最高的交易额是多少?8. 找到交易额最小的交易。个人感受参考资料目...原创 2019-03-25 21:14:32 · 16235 阅读 · 1 评论 -
Java8-12-Stream 使用流
文章目录使用流切片和筛选用谓词筛选筛选各异的元素截短流跳过元素映射对流中每一个元素应用函数流的扁平化尝试1flatMap 的引入2、使用 flatMap查找和匹配检查谓词是否至少匹配一个元素(anyMatch)检查谓词是否匹配所有元素(allMatch)确保流中没有任何元匹配素(noneMatch)查找元素当前流中的任意元素查找第一个元素归约元素求和与方法引用结合无初始值最大值和最小值最大值最小值...原创 2019-03-25 21:13:18 · 15352 阅读 · 0 评论 -
Java8-11-Stream 引入流
文章目录流是什么举例说明基础类jdk7 实现jdk8 实现jdk8 并行版本jdk8 stream 的优势流简介代码流与集合的差别是否急切只能遍历一次外部迭代与内部迭代内部迭代的优势流操作中间操作终端操作流的使用参考资料目录导航流是什么流是Java API的新成员,它允许你以声明的方式处理数据集合,简单来说,可以把它当作数据集的高级迭代器。此外,流还可以透明地并行处理,你无需写任何多线程代码...原创 2019-03-25 21:12:41 · 15934 阅读 · 1 评论 -
Java8-10-行为参数化
文章目录行为参数化版本1:要求筛选出颜色为绿色的苹果版本2:查找指定颜色的苹果版本3:查找重苹果版本4:使用策略模式版本5:使用匿名类版本6:lambda 表达式参考资料目录导航行为参数化在软件开发中,一个众所周知的问题就是无论你做什么,用户的需求总会改变。举个栗子,假设要做一个帮助农场主理解库存的应用。一开始,农场主可能想有一个在所有库存中找出所有绿色苹果的功能。但是第二天他可能会告诉...原创 2019-03-25 21:11:52 · 15543 阅读 · 0 评论 -
Java8-09-functional 函数式编程
文章目录Functional Programming in JavaUsage of collectionList translateCollection filterOptionalMapReduceString IteratorCollect拓展阅读目录导航Functional Programming in JavaLambda expressions are lightweight, h...原创 2019-03-25 21:11:06 · 15626 阅读 · 0 评论 -
Java8-08-java8 时间类日期类 LocalDate、LocalTime、LocalDateTime
layout: posttitle: Java8-08-java8 日期类date: 2019-2-27 15:48:49 +0800categories: [Java]tags: [java, jdk8, sh]published: trueJava SE 8 Date and Time为什么需要?Java开发人员的一个长期困扰是对普通开发人员的日期和时间用例的支持不足。例...原创 2019-03-25 21:10:15 · 17335 阅读 · 0 评论 -
Java8-07-ChronoUnit 日期枚举类
文章目录ChronoUnit入门例子plus() 测试between参考资料目录导航ChronoUnit一组标准的日期时间单位。这组单元提供基于单元的访问来操纵日期,时间或日期时间。 可以通过实现TemporalUnit来扩展标准单元集。这些单元适用于多个日历系统。例如,大多数非ISO日历系统定义年,月和日的单位,只是略有不同的规则。 每个单元的文档说明了它的运作方式。这是一个最终的、...原创 2019-03-25 21:08:44 · 25022 阅读 · 1 评论 -
java8-23-optional 优雅的避免 NPE
文章目录Optional用Optional取代null如何为缺失的值建模采用防御式检查减少NullPointerExceptionnull 带来的种种问题Optional 类入门null & Optional.empty()C# 的语言设计Guava Optional应用 Optional 的几种模式创建Optional 对象声明一个空的Optional依据一个非空值创建Optional可...原创 2019-03-26 22:16:01 · 16416 阅读 · 2 评论