摘要: 1. 流 1.1. 以声明性方式处理数据集合 1.2. 通过查询语句来表达,而不是临时编写一个实现 1.3. 遍历数据集的高级迭代器 1.4. 透明地并行处理 1.5. 从支持数据处理操作的源生成的元素序列 1.5.1. 元素序列 1.5.1.1. 从有序集合生成流时会保留原有的顺序 1.5.2.  阅读全文
posted @ 2023-02-07 08:47 躺柒 阅读(94) 评论(0) 推荐(0)
摘要: 1. 行为参数化 1.1. 处理频繁变更的需求的一种软件开发模式 1.1.1. 不管你做什么,用户的需求肯定会变 1.1.2. 可让代码更好地适应不断变化的要求,减轻未来的工作量 1.2. 一个方法接受多个不同的行为作为参数,并在内部使用它们,完成不同行为的能力 1.2.1. 类似于在内联“传递代码 阅读全文
posted @ 2023-02-06 07:37 躺柒 阅读(100) 评论(0) 推荐(0)
摘要: 1. 语言的演变 1.1. C和C++仍然是构建操作系统和各种嵌入式系统的流行工具 1.2. Java和C#等安全型语言在诸多运行资源不太紧张的应用中已经取代了C和C++ 1.3. Java可能会被同样运行在JVM上的竞争对手语言(如Scala或Groovy)取代 1.4. Ada、Algol、CO 阅读全文
posted @ 2023-02-05 10:38 躺柒 阅读(106) 评论(0) 推荐(0)
摘要: 1. 回头看 日更坚持了31天,精读了《C#代码整洁之道》《编程与类型系统)《函数式编程思维》《Java8函数式编程》这四本书,当月累积码字43690字。 看了大热的电视剧《狂飙》。 2. 感受 保持千字左右非水贴型日更还是很考验人的。 即使是读书笔记,按照读记比例15:1到25:1折算,每天也要读 阅读全文
posted @ 2023-02-04 07:20 躺柒 阅读(187) 评论(11) 推荐(1)
摘要: 1. 基本信息 函数式编程思维 Functional Thinking [美] 福特(Neal Ford) 著,郭晓刚 译 人民邮电出版社,2015年8月出版 1.1. 读薄率 书籍总字数242千字,笔记总字数9983字。 读薄率9983÷242000≈4.13% 统计口径恢复到版权页书籍总字数,读 阅读全文
posted @ 2023-02-03 08:52 躺柒 阅读(184) 评论(0) 推荐(0)
摘要: 1. Lambda表达式的单元测试 1.1. 单元测试是测试一段代码的行为是否符合预期的方式 1.2. Lambda表达式没有名字,无法直接在测试代码中调用 1.2.1. 将Lambda表达式放入一个方法测试,这种方式要测那个方法,而不是Lambda表达式本身 1.2.2. 请用方法引用。任何Lam 阅读全文
posted @ 2023-02-02 09:10 躺柒 阅读(113) 评论(0) 推荐(0)
摘要: 1. SOLID原则 1.1. 开发良好面向对象程序的准则 1.2. Liskov substitution里氏替换 1.3. Interface segregation接口隔离 1.4. Single responsibility单一功能原则 1.4.1. 程序中的类或方法只能有一个改变的理由 1 阅读全文
posted @ 2023-02-01 12:08 躺柒 阅读(300) 评论(0) 推荐(0)
摘要: 1. 阻塞式I/O 1.1. 一种通用且易于理解的方式,因为和程序用户的交互通常符合这样一种顺序执行的方式 1.2. 将系统扩展至支持大量用户时,需要和服务器建立大量TCP连接,因此扩展性不是很好 2. 非阻塞式I/O 2.1. 异步I/O 2.2. 可以处理大量并发网络连接,而且一个线程可以为多个 阅读全文
posted @ 2023-01-31 08:51 躺柒 阅读(130) 评论(0) 推荐(0)
摘要: 1. 并发 1.1. 两个任务共享时间段 1.2. 一个程序要运行两个任务,并且只有一个CPU给它们分配了不同的时间片,那么这就是并发,而不是并行 2. 并行 2.1. 两个任务在同一时间发生 2.2. 为缩短任务执行时间,将一个任务分解成几部分,然后并行执行 2.3. 和顺序执行的任务量是一样的, 阅读全文
posted @ 2023-01-30 08:52 躺柒 阅读(114) 评论(0) 推荐(0)
摘要: 1. 默认方法 1.1. 接口中定义的包含方法体的方法,方法名有default关键字做前缀 1.1.1. 在任何接口中,无论函数接口还是非函数接口,都可以使用该方法 1.2. Collection接口 1.2.1. stream方法 1.3. Iterable接口 1.3.1. forEach方法 阅读全文
posted @ 2023-01-29 08:59 躺柒 阅读(340) 评论(0) 推荐(0)
摘要: 1. 方法引用 1.1. 一种引用方法的轻量级语法 1.1.1. 提供了一种简短的语法 1.1.2. 标准语法为Classname::methodName 1.2. 凡是使用Lambda表达式的地方,就可以使用 1.3. 自动支持多个参数 1.3.1. 前提是选对了正确的函数接口 2. 出现顺序 2 阅读全文
posted @ 2023-01-28 08:49 躺柒 阅读(99) 评论(0) 推荐(0)
摘要: 1. 外部迭代 1.1. for循环是一个封装了迭代的语法糖 1.1.1. 本质上来讲是一种串行化操作 1.2. 很难抽象出不同操作 2. 内部迭代 2.1. 内部迭代中的相应接口:Stream 2.2. 和Iterator类似,Stream是一种内部迭代方式 2.3. 内部迭代将更多控制权交给了集 阅读全文
posted @ 2023-01-27 07:57 躺柒 阅读(87) 评论(0) 推荐(0)
摘要: 1. Java 8函数式编程 1.1. 没有单子 1.2. 没有语言层面的惰性求值 1.3. 没有为不可变性提供额外支持 1.4. 集合类可以拥有一些额外的方法:default方法 2. 现实世界中,数据和行为并存 2.1. 面向对象编程是对数据进行抽象 2.2. 函数式编程是对行为进行抽象 3.  阅读全文
posted @ 2023-01-26 07:26 躺柒 阅读(313) 评论(0) 推荐(0)
摘要: 1. 基本信息 编程与类型系统 Programming With Types:Examples in TypeScript [美] 弗拉德·里斯库迪亚(Vlad Riscutia) 著,赵利通 译 机械工业出版社,2021年1月出版 1.1. 读薄率 书籍【真实】字数17.5万字,笔记总字数1929 阅读全文
posted @ 2023-01-25 20:27 躺柒 阅读(361) 评论(0) 推荐(0)
摘要: 1. Java 8 1.1. 除了增加函数式特性,还增加了一些配合使用的语法糖衣 1.2. 函数式接口 1.2.1. SAM(Single Abstract Method,单抽象方法)接口 1.2.1.1. 含有单一方法的接口是Java的一种习惯用法 1.2.1.2. Runnable和Callab 阅读全文
posted @ 2023-01-24 08:31 躺柒 阅读(276) 评论(0) 推荐(0)