源码分析(领航篇)

源码分析(领航篇)

以下只是本人学习中得到的经验,后续会不断更新
如果读者有更好观点可以评论沟通,大家互相学习进步😄😄😄

源码,这对很多人来说,包括以前的博主本人,都是天书般的存在😭

大家在刚开始接触编程的时候,肯定天天听大佬说要多看源码,吸收前辈的思想

我们都知道看源码对自己提升有帮助,但是就是不敢看,怕看不懂

想一想,为什么我们看不懂?

废话,那还不是因为不会吗!

那我们看源码的目的是为了什么?

吸收前辈思想,看懂源码

so?源码你都懂了还看啥看

要知道,好事多磨 ,源码是前辈反复打磨,留给我们的宝贵的学习资源

我们不花时间去磨,怎么可能看懂精髓

博主发现在掌握了一些技巧后,会很大程度上帮助我们分析源码

我的源码分析专栏的文章也大体是按照这些技巧来分析的

如何学习一门技术

学习一项技术我觉得有两个方向
在这里插入图片描述
第一个方向就是从使用到底层

首先我会使用这个工具了,在有使用经验的前提下去看原理,可以结合现象和代码,会更容易接收一点

第二个方向就是先学会底层原理接着去使用

这条路很难,相当于让你先学会跑步,再学会走路,难度可想而知

如果没学过这部分的知识,想靠看源码学会这个知识,那是特别难的

当然,如果你愿意挑战并且挑战成功的话,那使用这门技术对于你来说就是小case啦😄

分析类三板斧

盘继承体系

如何快速看这个类的继承体系

也是一个技巧,这可不是在源码里面点来点去

先找到这个要分析的类,选中类名,右键选择最后一项diagrams,就可以了
在这里插入图片描述
接着点show diagram
在这里插入图片描述

分析

一个类如果孤零零一个,那分析起来是相对简单的

它不会涉及到子调父,父调子之间的方法调用

所有的方法都是在这个类内部

但是这种情况比较少

以下这种情况比较多🤩🤩
在这里插入图片描述

从一个类的继承体系可以知道以下这些信息

1、它有哪些主要父类

2、实现了哪些重要接口

内部类

如何快速查看

ALT + 7唤出类结构标签页,就可以很方便的看到它有哪些内部类了
在这里插入图片描述
内部类一般都是这个类封装的对象,有的是对外开放的有的是不对外开放的,可以在内部类类名前的那把小锁看出来

绿色的打开的锁就是对外开放的,红色的锁起来的锁就是不对外开放的

比如在ThreadPoolExecutor

AbortPolicyDiscardPolicyDiscardOldestPolicyCallerRunsPolicy都实现了RejectedExecutionHandler接口,这些实现类是对外开放的

Worker是封装了对Thread的一些操作,没有对外开放

成员变量

这个也可以通过ALT + 7查看类结构快速查看

在这里插入图片描述
成员属性多重要就不用我说了吧

戒贪

磨源码千万要 戒贪

只看核心代码,自动忽略try catch和日志相关代码

分析框架三板斧

找入口(最关键

框架为我们搭好了一栋大厦

第一步要做的就是要先找到进入这栋大厦的门口,然后才可以开始探究它的内部结构

不然只能做门外汉

这一步可以是靠自己分析出来,比如SpringBoot的入口

在这里插入图片描述
就两地方有代码

@SpringBootApplication是自动装配的入口

SpringApplication.run是启动的入口

再比如Spring的入口

在这里插入图片描述
那就是这个构造方法了呗

入口实在找不到的话就去搜一下

打断点

在入口打好断点,一步步走

这时候需要去靠直觉判断这个方法调用重不重要,觉得不重要就不需要点进去看执行细节了

好好利用这四个按钮
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

芝麻\n

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值