转载

JDK1.8源码分析01之学习建议(可以延伸其他源码学习)

序言:目前看一看源码,来提升自己的技术实力。同时现在好多面试官都喜欢问源码,问你是否读过JDK源码等等?

针对如何阅读源码,也请教了我的老师。下面就先来看看老师的回答,也许会有帮助呢。

我很尊敬的一位老师,他姓唐,算是我入门编程的启蒙老师,有10多年的C/C++开发经验,我有幸跟着老师的C++/C课程,自学完,而且还学了数据结构。他的讲课很有风格,幽默风趣,有条有理,深入浅出。

不过后来,我决定走Java这条不归路。

我向老师请教了一个问题: 关于如何阅读源码的问题?不乏味,思路清晰。就像他的课程一样,基本上很少会有疲倦,枯燥的感觉。

唐老师,回答道:读源码是要建立在你的基础经验足够的情况下。否则很容易看不懂

我继续又问: 那对于刚刚想尝试去读源码的同学来说,有没有一些建议呢?我尝试着读了一些,但感觉很无厘头。

唐老师,回答道: 读源码是要读和你水平相匹配的。好多人好高骛远,简单的,能读懂的不屑, 想读的,又读不懂,高不成低不就。我的建议是从教学型项目读起。

小插曲:有位朋友说,源码写的就一定比我写的好吗? 哈哈,这回答倒也是刷新我的认知。

另外一位朋友有举例说: 如果读redis源码, 我会先看一本讲Redis原理的书,然后再看源码。

以上就是我这次请教的过程,总结一下:先懂原理,知道一个全局框架,再结合教学型项目或自己写些小案例,再深入源码。

知识在于积累,学习需要耐力。学习就像挖金矿,或许一开始毫无头绪,但转个角度、换换工具,时间久了总会找到一个缝隙。成功就是你比别人多走了一段路,或许恰恰是那么一小步。

有人抱怨: 阅读源码太枯燥、乏味了,看到源码就头晕,无法学下去了。你肯定选择了一条充满荆棘的路。选对方法,你会发现这里是一条充满鸟语花香和欢声笑语的幽径。

我也整理了最近学习源码的一个大致方法,至少这是我实践的一套方法,大家也可以慢慢整理出适合自己的一套方法。

01. 多角度,对比学习。

除了自己去阅读源码之外,比如学习某个类的时候,可以专门结合一些优质的博客针对性的对比学习,并查漏补缺。

02. 制定源码学习计划。

大多数人其实对源码的整体框架没有太多了解,只知道我要学习源码,但却无从下手。那么,制定一个可行性的源码学习计划,对你后面的学习源码会有一个指导性的作用。我在找源码的阅读方法时,偶遇一篇 讲JDK阅读源码顺序,给了我一个学习源码的方向, 也正是我需要的。我后面也会专门分享出来的。

03. 多调试,跟踪源码。

源码阅读,我可以说必须要debug。如果你的大脑够强大,自带编译运行,不需要idea辅助。如果没有,那还是老老实实地把源码导入,自己debug,看一下运行时,代码的逻辑走向是怎么样的。

04. 多交流,请教高人。

交流可以验证和加固自己的知识。只有好处,没有坏处。对于不会的,理解不透彻,也可以向大lao请教,但前提得先自己Google解决一下。

05. 多记录,分享。

JDK1.8源码分析01之学习建议(可以延伸其他源码学习)

我偶尔会有一种错觉,我在学习某项东西的时候,看着一些写得好的博客,这暂且叫碎片化学习,看了也就过了,隔三差五就忘了,又继续回到我的增删改查。然后自己写的时候,写不出那种效果,总担心重复别人的轮子。

只要不是全部复制+粘贴, 加上自己的体会和感觉,再写出来的,那就是你的,独一无二的一份笔记和心得。

我的分享暂且就到这里吧。

如若有好的学习方法,可以留言一起交流学习。

原创不易,转载请注明作者和原文链接。

喜欢的朋友们,可以微信关注或点个喜欢。

JDK1.8源码分析01之学习建议(可以延伸其他源码学习)

原文  https://segmentfault.com/a/1190000019982404
正文到此结束
Loading...