个人简介

Echo Blog


江湖无名 安心练剑
  • Programming language theory 编程语言理论-01-overview 概览
    编程语言理论 编程语言理论(英语:Programming language theory)是计算机科学的一个分支,研究编程语言的设计、实现、分析、描述和分类及其各自的特点。 它属于计算机科学,既依赖又影响着数学、软件工程、语言学,甚至认知科学。 历史 从某种角度来看,编程语言理论的历史,甚至比编程语言本身的发展更久远。 尽管阿隆佐·邱奇与斯蒂芬·科尔·克莱尼在1930年代发明的La...
    2020-06-05 09:42:59 | Theory
  • java8 函数时编程 stream 源码解析
    前提 Stream是JDK1.8中首次引入的,距今已经过去了接近8年时间(JDK1.8正式版是2013年底发布的)。 Stream的引入一方面极大地简化了某些开发场景,另一方面也可能降低了编码的可读性(确实有不少人说到Stream会降低代码的可读性,但是在笔者看来,熟练使用之后反而觉得代码的可读性提高了)。 这篇文章会花巨量篇幅,详细分析Stream的底层实现原理,参考的源码是JDK1...
    2020-06-05 09:42:59 | Java
  • java8 函数式编程-10-groupby 分组
    chat jdk8 list 分组 在Java 8中,你可以使用Stream API来对List进行分组。这通常是通过Collectors.groupingBy方法来实现的。 下面是一个简单的例子,展示了如何根据对象的某个属性来对List中的元素进行分组。 假设我们有一个Person类,它有两个属性:name和age。 import java.util.*; import java...
    2020-06-05 09:42:59 | Java
  • java8 函数式编程-09-concurrency 并发
    前面讨论了如何并行化处理数据,本章讨论如何使用 Lambda 表达式编写并发应用,高效传递信息和非阻塞式 I/O。 本 章 的 一 些 例 子 用 到 了 Vert.x(http://vertx.io/) 和 RxJava(https://github.com/Netflix/RxJava)框架,但其中展现的设计原则是通用的,对其他框架或是自己编写的、没有使用任何框架的程序也适用。 9....
    2020-06-05 09:42:59 | Java
  • java8 函数式编程-08-设计和架构的原则
    软件开发最重要的设计工具不是什么技术,而是一颗在设计原则方面训练有素的头脑。—— Craig Larman 通过前面的学习,我们认识到 Lambda 表达式是对 Java 语言的一点简单改进,在 JDK 标准类库中,运行它的方式各种各样。 但是大多数 Java 代码都不是由开发 JDK 的程序员写的,而是像你我这样的普通程序员。为了最大限度发挥 Lambda 表达式的优势,大家需要将其引...
    2020-06-05 09:42:59 | Java
  • java8 函数式编程-07-debug 测试、调试、重构
    重构、测试驱动开发(TDD)和持续集成(CI)越来越流行,如果我们需要将 Lambda 表达式应用于日常编程工作中,就得学会如何为它编写单元测试。 关于如何测试和调试计算机程序的书已经汗牛充栋,本章不打算再一一赘述。 如果读者对如何正确地使用测试驱动开发(TDD)感兴趣,我极力推荐大家阅读 Kent Beck 写的Test-Driven Development,以及由 Steve Fre...
    2020-06-05 09:42:59 | Java
  • java8 函数式编程-06-parallel 数据并行化
    前面多次提到,在 Java 8 中,编写并行化的程序很容易。这都多亏了第 3 章介绍的Lambda 表达式和流,我们完全不必理会串行或并行,只要告诉程序该做什么就行了。 这听起来和长久以来使用 Java 编程的方式并无区别,但告诉计算机做什么和怎么做是完全不同的。 从外部迭代到内部迭代的过渡(详见第 3 章),确实让编写简洁的代码更加容易,但这还不是唯一的好处,另一个好处是程序员不需要手...
    2020-06-05 09:42:59 | Java
  • java8 函数式编程-05-collect 高级集合类和收集器
    第 3 章只介绍了集合类的部分变化,事实上,Java 8 对集合类的改进不止这些。 现在是时候介绍一些高级主题了,包括新引入的 Collector 类。同时我还会为大家介绍方法引用,它可以帮助大家在 Lambda 表达式中轻松使用已有代码。 编写大量使用集合类的代码时,使用方法引用能让程序员获得丰厚的回报。 本章还会涉及集合类的一些更高级的主题,比如流中元素的顺序,以及一些有用的 AP...
    2020-06-05 09:42:59 | Java