资讯专栏INFORMATION COLUMN

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

ky0ncheng / 2928人阅读

摘要:唐老师,回答道读源码是要建立在你的基础经验足够的情况下。除了自己去阅读源码之外,比如学习某个类的时候,可以专门结合一些优质的博客针对性的对比学习,并查漏补缺。制定源码学习计划。多调试,跟踪源码。如若有好的学习方法,可以留言一起交流学习。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

01. 多角度,对比学习。

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

02. 制定源码学习计划。

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

03. 多调试,跟踪源码。

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

04. 多交流,请教高人。

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

05. 多记录,分享。

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

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

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

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

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

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/75856.html

相关文章

  • 还在使用SimpleDateFormat?

    摘要:线程挂起,线程继续走,还会被继续使用方法,而这时用的是线程设置的值了,而这就是引发问题的根源,出现时间不对,线程挂死等等。建议为每个线程创建单独的格式实例。其中工作队列使用的是,源码头部的注释中有说明截取的部分。 阅读本文大概需要 3.2 分钟。 前言 日常开发中,我们经常需要使用时间相关类,想必大家对SimpleDateFormat并不陌生。主要是用它进行时间的格式化输出和解析,...

    LittleLiByte 评论0 收藏0
  • Java相关

    摘要:本文是作者自己对中线程的状态线程间协作相关使用的理解与总结,不对之处,望指出,共勉。当中的的数目而不是已占用的位置数大于集合番一文通版集合番一文通版垃圾回收机制讲得很透彻,深入浅出。 一小时搞明白自定义注解 Annotation(注解)就是 Java 提供了一种元程序中的元素关联任何信息和着任何元数据(metadata)的途径和方法。Annotion(注解) 是一个接口,程序可以通过...

    wangtdgoodluck 评论0 收藏0
  • 集合源码学习路---hashMap(jdk1.8)

    摘要:值得位数有的次方,如果直接拿散列值作为下标访问主数组的话,只要算法比较均匀,一般是很难出现碰撞的。但是内存装不下这么大的数组,所以计算数组下标就采取了一种折中的办法,就是将得到的散列值与数组长度做一个与操作。 hashMap简单介绍 hashMap是面试中的高频考点,或许日常工作中我们只需把hashMap给new出来,调用put和get方法就完了。但是hashMap给我们提供了一个绝佳...

    kamushin233 评论0 收藏0
  • java源码

    摘要:集合源码解析回归基础,集合源码解析系列,持续更新和源码分析与是两个常用的操作字符串的类。这里我们从源码看下不同状态都是怎么处理的。 Java 集合深入理解:ArrayList 回归基础,Java 集合深入理解系列,持续更新~ JVM 源码分析之 System.currentTimeMillis 及 nanoTime 原理详解 JVM 源码分析之 System.currentTimeMi...

    Freeman 评论0 收藏0
  • 高并发

    摘要:表示的是两个,当其中任意一个计算完并发编程之是线程安全并且高效的,在并发编程中经常可见它的使用,在开始分析它的高并发实现机制前,先讲讲废话,看看它是如何被引入的。电商秒杀和抢购,是两个比较典型的互联网高并发场景。 干货:深度剖析分布式搜索引擎设计 分布式,高可用,和机器学习一样,最近几年被提及得最多的名词,听名字多牛逼,来,我们一步一步来击破前两个名词,今天我们首先来说说分布式。 探究...

    supernavy 评论0 收藏0

发表评论

0条评论

ky0ncheng

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<