REJAVA / LEARNING NOTES
学习导读:通用学习路线
从应用内部协作到多应用协作,安排阅读、应用与回顾。
根据课程材料整理
本次更新说明
- 统一 CompletableFuture 的中文释义。
- 提炼知识地图与通用学习方法,保留相关学习范围。
- 移除个人背景、评价及与学习无关的分析。
学习路线表达的是主题之间的关系。可以根据已有知识调整节奏,不必把所有主题压进固定天数。
第一段:理解一条应用内部的执行流程
先理解 JMM(Java 内存模型)与 volatile(可见性关键字),再看 synchronized(内置同步关键字)。前者说明共享访问应满足的规则,后者帮助理解同锁互斥与可见性。
接着学习 thread pool(线程池):任务如何提交、排队、执行和结束。然后看 ConcurrentHashMap(并发哈希映射),检查“一个方法安全”和“几步业务一起安全”的区别。
后续可以连接 BlockingQueue(阻塞队列)与 CompletableFuture(可编排的异步结果)。再回到 JVM(Java 虚拟机)的内存区域、对象回收和 GC(垃圾回收),理解运行时资源怎样被管理。
可以留下的学习产出: 一次完整解释、一个可复现的代码现象、一个改变条件后需要重新判断的问题。
第二段:理解数据怎样读写
从 MySQL(关系型数据库)的索引与执行计划进入,再学习 transaction(事务)、隔离级别、MVCC(多版本并发控制)、锁与死锁。
然后看 Redis(内存数据存储)的数据类型、持久化和缓存一致性。把“读取、未命中、回填、过期、失败处理”串成一次完整请求。
框架部分依次连接 Spring(应用框架)的 IoC(控制反转)、AOP(面向切面编程)、事务失效场景与自动配置,再看 MyBatis(持久层框架)如何执行数据访问。
可以留下的学习产出: 一份执行计划解释、一个事务失效案例,以及一次缓存读写过程说明。
第三段:理解多个应用怎样协作
先认识 CAP(一致性、可用性、分区容错性)与 BASE(基本可用、软状态、最终一致性),再讨论分布式标识、分布式锁、消息和事务。
学习 message queue(消息队列)时,分别检查丢失、重复、顺序和积压。学习 distributed transaction(分布式事务)时,比较 2PC(两阶段提交)、TCC(尝试、确认、取消)、Saga(分步事务与补偿)和本地消息表的适用条件。
最后把服务发现、网关、rate limiting(限流)、circuit breaker(熔断)与 idempotency(幂等性)放回业务流程。每次都说明:保护什么、失败怎样处理、还有哪些限制。
可以留下的学习产出: 一张业务流程图、两种方案的取舍,以及一个最小验证实验。
第四段:连接新特性与综合应用
按实际 Java 版本理解 virtual thread(虚拟线程)、record(记录类)、sealed class(密封类)和 pattern matching(模式匹配)。不要把不同版本的行为混在一起。
AI(人工智能)部分先认识 Spring AI(Spring 人工智能集成框架)、LangChain4j(Java 大模型应用框架)、RAG(检索增强生成)和 Agent(智能体),理解它们与既有后端服务的联系。
综合练习可以围绕订单、短链接、缓存或消息流程展开。重点是说明数据、执行顺序、失败路径与验证方法。
每次学习怎样收束
- 先回想上次留下的一个问题。
- 阅读本次主问题及其例子,把不熟悉的词放回场景中理解。
- 做一次应用判断,或运行一个有明确预期的示例。
- 合上资料,完整解释一次。
- 记下仍然模糊的条件,隔一段时间再用变式检查。
看完资料、运行示例和独立解决问题是不同的经历。记录差别,可以帮助下一次复习找到入口。
继续阅读
从volatile(可见性关键字)与 JMM(Java 内存模型)开始。需要查看全局范围时,回到Java 知识地图。
路线整理参考 JavaGuide(Java 学习与面试资料库) 与 advanced-java(Java 进阶学习资料)。