# 一.源码方法论
- 学好 JDK
- 了解设计模式
- 先从官网入手
- 熟悉源码模块结构
- 顺着 demo 开始读
- 带着目的去读,带着问题去读
- 先抓主线,再抓分支,先梳理脉络,然后看细节
- 不要过度抠实现细节,千万不要一开始的时候就深入细节,死扣某个方法
- 大胆猜,大胆猜测,大胆验证,8 分靠猜
- 学会看类名,见名知意
- 学会看类结构,使用 idea 的功能,类结构
- 总结类的职责,需要自己总结
- 习惯阅读注释
- 写好注释,不要忽略源码中的注释
- 提前了解依赖的技术
- 查阅相关资料
- 坚持

# 二.如何学源码
# 1.jdk 源码
所有的 Java 类开源项目,本质上其实就是利用 JDK 已有的类库和关键字实现一种业务功能,所以学会了 JDK 相关的类库是看其它的源码基础。
- 下载源码
- 逐步执行
- 做标记
- 加注释
- 画流程图
学习 JDK 主要包括使用和原理两部分。内容大致包括以下几部分:
集合相关,比如常见的 Map,List,Queue 的实现,包括线程安全与不安全
并发相关,比如 synchronized、volatile、CAS、AQS、锁、线程池、原子类等等
io 相关,包括 bio 和 nio 等等
反射相关
网络编程相关
等等
# 2.Spring 源码
- 大多通过注解实现,进入注解所在的包
- 打开 META-INF 下面的 spring.factories,查看关键配置信息
- 查看具体的实现逻辑
- 打开 idea 的 Structure,可以查看类的变量和方法,方便查阅
- 打开 idea 的 Hierarchy,可以查看类的向上和向下继承实现关系
- 画流程图
# 3.看源码方法
- 先使用:先看官方文档快速掌握框架的基本使用
- 抓主线:找一个 demo 入手,顺藤摸瓜快速静态看一遍框架的主线源码,画出源码主流程图,切勿一开始就陷入源码的细枝未节,否则会把自己绕晕,凭经验猜
- 画图做笔记:总结框架的一些核心功能点,从这些功能点入手深入到源码的细节,边看源码边画源码走向图,并对关键源码的理解做笔记,把源码里的闪光点都记录下来,后续借鉴到工作项目中,理解能力强的可以直接看静态源码,也可以边看源码边 debug 源码执行过程,观赛一些关键变量的值
- 整合总结:所有功能点的源码都分析完后,回到主流程图再梳理一遍,争取把自己画的所有图都在脑袋里做一个整合
- 当你带着这些目的,你读源码就有很强的目的性,读完印象会很深刻。当然如果你最开始想不到这些目的,也没有什么关系,你可以先往下读,在读的过程中再去尝试发现一些其它的目的。
# 三.jdk 源码下载
# 1.下载地址

# 2.选择小版本

# 3.下载 zip

# 四.新公司开发软件哪里找
- 打开 csdn 的上传资料
- 在家把资料上传到 csdn
- 到新公司下载 csdn 软件
- 添加 TODO 标签
- 添加书签