摘要:
1. Nicolai Parlog编写的The Java Module System 1.1. 推荐阅读 2. Jigsaw项目 2.1. 开发持续了将近十年 3. 关注点分离 3.1. separation of concern,SoC 3.2. 将单体的计算机程序分解为一个个相互独立的特性 4. 阅读全文
摘要:
1. 设计模式 1.1. 对设计经验的归纳总结 1.2. 一种可重用的蓝图 1.3. Java 5引入了for-each循环 1.3.1. 替代了很多显式使用迭代器的情形 1.4. Java 7推出的菱形操作符(<>) 1.4.1. 帮助大家在创建实例时无须显式使用泛型 1.4.2. 推动了Java 阅读全文
摘要:
1. 注解 1.1. 一种使用附加信息装饰程序元素的机制 1.2. Java 8之前,只有声明可以被注解 1.3. 一种语法元数据(syntactic metadata) 1.4. 可以用于文档编制 1.4.1. @Deprecated注解被广泛应用于说明某个方法不再推荐使用 1.5. 依据注解检测 阅读全文
摘要:
1. 设计原则 1.1. 将所有你愿意接受的作为参数的函数可能带来的副作用以文档的方式记录下来 1.2. 最理想的情况下你接收的函数参数应该没有任何副作用 1.3. 延迟数据结构是强力武器 1.4. 所有使用持久化数据结构的用户都必须遵守“不修改”原则 2. 一等函数 2.1. first-clas 阅读全文
摘要:
1. 规则 1.1. 传递参数,返回结果 1.1.1. 异常和中断都不算返回结果 1.2. 减少共享的可变数据结构能帮助你降低维护和调试程序的代价 2. 耦合性 2.1. 软件系统中各组件之间是否相互独立 3. 内聚性 3.1. 系统的各相关部分之间如何协作 4. 无状态的行为 4.1. 流水线中的 阅读全文
摘要:
1. 兼容性 1.1. 二进制级的兼容性 1.1.1. 只要不重新编译该类,即使不实现新的方法,现有类的实现依旧可以运行 1.1.2. 现有的二进制执行文件能无缝持续链接(包括验证、准备和解析)和运行 1.1.3. 如果新添加的方法不被调用,接口已经实现的方法就可以继续运行,不会出现错误 1.2. 阅读全文
摘要:
1. null的由来 1.1. 历史上被引入到程序设计语言中,目的是为了表示变量值的缺失 1.2. 包括Java在内的大多数现代程序设计语言为了与更老的语言保持兼容 2. null带来的问题 2.1. 错误之源 2.1.1. NullPointerException是最典型的异常 2.2. 代码膨胀 阅读全文
摘要:
1. 基本信息 Java 8函数式编程 Java 8 Lambdas: Functional Programming for the Masses [英] Richard Warburton 著 ; 王群锋 译 人民邮电出版社,2015年3月出版 1.1. 读薄率 书籍总字数191千字,笔记总字数8 阅读全文
摘要:
1. Java 8之前的库对日期和时间的支持非常不理想 2. TemporalField接口 2.1. 定义了如何访问temporal对象某个字段的值的接口 2.2. ChronoField枚举 2.2.1. 实现TemporalField接口 3. LocalDate类 3.1. 实例是一个不可变 阅读全文
摘要:
1. 集合工厂 1.1. Arrays.asList() 1.1.1. 创建了一个固定大小的列表 1.1.2. 列表的元素可以更新 1.1.3. 不能增加或者删除 1.1.4. 大小固定的可变数组 1.2. 没有Arrays.asSet() 1.2.1. 可以向HashSet的构造器传递一个列表实现 阅读全文