第九卷:语言深度
同一句“这个变量没变”,在不可变对象、共享引用和多线程程序里可能需要不同的证据。本卷比较类型系统、内存管理、并发、函数式抽象、JVM 与 DSL。语言排名先放一边,先看这段程序究竟保证了什么。
先修知识
覆盖内容
前两章区分类型规则、运行时存储与线程间的内存模型;第 3、4 章比较并发和函数式组织方式;第 5、6 章沿 JVM 与元编程查看抽象如何实现。
第 1 章
第 2 章
第 3 章
第 4 章
第 5 章
第 6 章
学完能做什么
- 根据读取和写入需求解释泛型的型变约束,并识别不合法的替换。
- 分开讨论对象生命周期、内存可见性和程序不变量,选择相应的管理或同步手段。
- 用字节码、运行时观察或一个小型 DSL 说明抽象的行为、成本与输入边界。
怎样使用这份目录
比较某种语言机制时,先写出它承诺的语义,再运行一个最小例子和一个失败例子。JVM 部分按 class 文件、加载调用、JIT 的顺序读;其他语言的片段用于对照机制,运行前按所在课次准备工具链。