# SUMMARY * [简介](./README.md) * [开篇词 | 拥抱Java新特性,像设计者一样工作和思考](./docs/444715.md) * [01 | JShell:怎么快速验证简单的小问题?](./docs/444721.md) * [02 | 文字块:怎么编写所见即所得的字符串?](./docs/445733.md) * [03 | 档案类:怎么精简地表达不可变数据?](./docs/446610.md) * [04 | 封闭类:怎么刹住失控的扩展性?](./docs/447486.md) * [05 | 类型匹配:怎么切除臃肿的强制转换?](./docs/449798.md) * [06 | switch表达式:怎么简化多情景操作?](./docs/454523.md) * [07 | switch匹配:能不能适配不同的类型?](./docs/460478.md) * [08 | 抛出异常,是不是错误处理的第一选择?](./docs/461630.md) * [09 | 异常恢复,付出的代价能不能少一点?](./docs/462432.md) * [10 | Flow,是异步编程的终极选择吗?](./docs/464209.md) * [11 | 矢量运算:Java的机器学习要来了吗?](./docs/464927.md) * [12 | 外部内存接口:零拷贝的障碍还有多少?](./docs/465899.md) * [13 | 外部函数接口,能不能取代Java本地接口?](./docs/467155.md) * [14 | 禁止空指针,该怎么避免崩溃的空指针?](./docs/469114.md) * [15 | 现代密码:你用的加密算法过时了吗?](./docs/469994.md) * [16 | 改进的废弃,怎么避免使用废弃的特性?](./docs/470882.md) * [17 | 模块系统:为什么Java需要模块化?](./docs/472516.md) * [18 | 模块系统:怎么模块化你的应用程序?](./docs/473204.md) * [期末测试|来赴一场满分之约!](./docs/474010.md) * [结束语 | Java的未来,依然是星辰大海](./docs/474055.md) * [用户故事 | 保持好奇心,积极拥抱变化](./docs/467973.md) * [用户故事 | 与新特性开发者对话](./docs/471405.md)