zoukankan      html  css  js  c++  java
  • JDK1.8源码分析01之学习建议(可以延伸其他源码学习)

    序言:目前准备看一看源码,来提升自己的技术实力。同时现在好多面试官都喜欢问源码,问你是否读过JDK源码等等?
    针对如何阅读源码,也请教了我的老师。下面就先来看看老师的回答,也许会有帮助呢。

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

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

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

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

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

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

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

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

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


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

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

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

    01. 多角度,对比学习。

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

    02. 制定源码学习计划。

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

    03. 多调试,跟踪源码。

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

    04. 多交流,请教高人。

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

    05. 多记录,分享。

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

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

    -------------------------------------------------- 漂亮的分割线 ----------------------------------------------------------------------------------

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

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

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

  • 相关阅读:
    实现UILabel渐变色效果
    设计模式-原型模式
    计算一/二元一次方程的类(用于动画控制)
    【转】VMware网络连接模式—桥接、NAT以及仅主机模式的详细介绍和区别
    【转】VMware虚拟机系统无法上网怎么办?
    【转】Android tools:context
    【转】android布局--Android fill_parent、wrap_content和match_parent的区别
    【转】在程序中设置android:gravity 和 android:layout_Gravity属性
    【转】android gravity属性 和 weight属性
    【转】Android xml资源文件中@、@android:type、@*、?、@+含义和区别
  • 原文地址:https://www.cnblogs.com/werewolfBoy/p/11306803.html
Copyright © 2011-2022 走看看