路漫漫其修远兮,吾将上下而求索
原文链接:
https://copyfuture.com/blogs-details/20190904170623796lx5xqkpl3znvh3z
挺久没写文章了,几个月前跳了个槽,把很多计划都有点打乱了。
天算不如人算,是该继续一些系统的前行和进步了。
由于本人最近在写书(是的,从去年开始,现在还没写完,想过放弃,但更想坚持下去,这辈子没坚持过什么,但我想把这件事先坚持下去),写公众号文章的时间不会有很多,所以不定时更新是肯定的,我尽量确保以后一个能够产出至少一篇以上的文章。
当然,我如果遇到好的文章,也会进行分享给大家。
工作也有几年了,也有过迷茫,不知道路在何方,不知道技术的前方等待我的是什么,技术图谱不知道看了多少遍,几年前看到的技术和现在看到的Java技术图谱,壮大了何止一倍。一般人看到很容易就放弃了,
在这里推荐一篇github的后端架构师技术图谱:
https://github.com/xingshaocheng/architect-awesome
现在不讲图谱,我们从源码开始。后续会慢慢对图谱中的知识点进行讲解。
暂时聊聊第一阶段的规划
第一阶段:
JDK源码的分析(看源码太累?每篇每次分析一个类不过分吧,我们一起成长,5分钟之内可以让你看完的那种,类的关联性很强的那种,将会在下篇进行继续讲解)
应该会从JDK的工具包开始,例如List、Map等;
然后是lang包下的String、StringBuffer、StringBuilder、Integer、Thread等;
io包下的类肯定也是不能少的,FileReader、InputStream等;
当然,util下的一些类也不能漏掉了,ConcurrentMap、Lock等;
读这些源码时,只需要读懂一些核心类即可,比如和ArrayList类似的二三十个类,对于每一个类,也不一定要每个方法都读懂。像String有些方法已经到虚拟机层了(native方法),如hashCode方法。
另外,希望能从源码中读到作者的思想,程序员大部分开发中都是些增删查改的业务逻辑。比如一个需求 我们用了几十行代码写了。感觉没问题,但是别人可能用几行就搞定了,要学习别人的思路。
还有设计模式和优雅,抛开公司业务代码(还记得某个人说了一句话:屎山上堆屎),在JDK源码中,以及很多的开源框架中,代码都是比较优雅的,很简洁。可以学习源码的代码写法。
经常看点源码,相信你面试可以走出那种六亲不认的步伐。
当然,你不需要直接去看源码,后面公众号的文章,我会与你们一块阅读源码。
当然,也许源码中会出现很多其他知识点的耦合,那我会在后面的文章中,进行一一讲解,尽量不放过知识盲点,当然,太底层的肯定是会跳过啦,比如native方法的实现等等
推荐一个阅读源码的步骤:
- 先阅读构造方法、注释;将注释翻译成自己理解的文字
- 看不懂暂时做个标记,后面你还会遇到类似的,看多了就懂了
- 边看边写自己理解的注释,这样不会那么无趣
- 看类的方法的实现,看不懂某个部分就先看下基础知识,实在看不懂回到第二步
- 最后理解作者的思想,为什么会这么去实现
我会新建一个github仓库,存储jdk1.8的源码,在后面的阅读源码过程中,每次都会将解析过的类进行标注,我的所有理解,以及注释都会在里面。
期待与您共同进步!
第二阶段,第一阶段写完再说咯,我也挺懒的~
当然,每次文章都是源码会很无趣(我会控制在5-10分钟内能阅读完的那种,可惜我不会画图,不然图解源码倒是个不错的选择),我尽量在每篇文章的次文章进行发表有趣的事情。
吾非大神,与汝俱进
未关注公众号的可以来波关注,后续公众号直接推送JDK文章: