语言深度
比较类型、内存、并发与运行时模型,理解语言特性背后的工程代价。
安全审查中,同一类错误在不同语言里呈现出完全不同的形态。你和阿花回到语言工坊,拆开类型系统、泛型、内存管理、并发模型和虚拟机,研究一门语言允许什么、阻止什么,又把哪些责任留给程序员。
旅程位置:安全要塞 → 语言工坊(理解语言选择的边界)→ 数学瞭望塔
前置要求
需要编程基础,至少熟悉两门语言(如 Java + Python)。
完成标志:理解类型系统分类、内存模型、并发模型差异、函数式编程思想、JVM 字节码、元编程。
第1章·第1课 类型、子类型与多态 已完成
从类型判断、子类型关系到参数多态,建立讨论类型系统的共同语言。
第1章·第2课 泛型与型变 已完成
理解协变、逆变、不变,以及擦除与单态化带来的运行时差异。
第1章·第3课 代数数据类型与类型推导 已完成
用和类型、积类型与穷尽检查,让非法状态更难进入程序。
第2章·第1课 运行时存储与逃逸 已完成
区分语言语义与运行时实现,理解栈帧、对象表示、值语义和逃逸分析。
第2章·第2课 内存管理 已完成
比较 Tracing GC、引用计数与所有权,按延迟、吞吐和资源语义选机制。
第2章·第3课 语言内存模型 已完成
从原子性、可见性和有序性推导 Happens-Before,而不是凭直觉猜并发结果。
第3章·第1课 共享内存并发 已完成
用锁、原子操作和状态所有权维护跨线程不变量。
第3章·第2课 Actor、Channel 与背压 已完成
比较状态所有权与通信通道,补齐容量、关闭和故障协议。
第3章·第3课 Async、结构化并发与 STM 已完成
约束任务生命周期,并理解异步、并行和事务内存的适用边界。
第4章·第1课 纯函数与不可变数据 已完成
从隐藏输入和可变状态出发,建立可测试的函数式核心。
第4章·第2课 高阶函数与组合 已完成
把规则和控制策略分开,并掌握 Stream 的惰性与生命周期边界。
第4章·第3课 代数抽象与副作用 已完成
从组合规律理解 Monoid、Functor、Applicative 与 Monad。
第5章·第1课 Class 文件与栈帧 已完成
用 javap 追踪常量池、描述符、局部变量表和操作数栈。
第5章·第2课 加载、链接与调用 已完成
理解类生命周期、方法分派和 invokedynamic 调用点。
第5章·第3课 JIT、去优化与观测 已完成
区分规范保证与实现优化,用运行时证据诊断性能。
第6章·第1课 编译期元编程 已完成
区分宏、注解处理与独立代码生成的阶段和契约。
第6章·第2课 运行时元编程 已完成
掌握反射、代理、装饰器与类创建的能力和代价。
第6章·第3课 DSL 设计 已完成
从语法进入语义、工具链、版本演进和安全执行边界。
本卷共 6 章,按渐进课时拆分为 18 篇;专业内容初稿已完成,等待集中校验。
完整课目
本卷按“章 → 编号课次”组织。8.1、8.2 这样的文件是第 8 章下连续的短课,不是两个重复章节。