来啊, 一起看遍JDK源码
原创文章, 转载请私信. 关注 tastejava 学习加思考, 仔细品味java之美
为什么要阅读源码
-
面试要考, 不管是什么公司面试, 源码相关知识点考察是少不了了, 例如ArrayList与LinkedList区别这样的烂大街问题 -
开发要用, 肯定要很熟悉JDK常见api, 理解其内部实现和特点才能正确灵活的运用
怎么阅读源码
经过一段时间的摸爬滚打, 我发现要想高效的阅读源码, 首先阅读英文原始文档的能力要强, 其次要熟练掌握所使用的IDE方法跳转相关操作, 如实现类跳转到接口, 接口跳转到实现类, 方法跳转到调用的地方, 直接跳转到某一行等. 最后还需要善于利用搜索引擎, 有查阅资料的能力.
阅读源码面临的问题
上面总结出来的是高效阅读源码需要具备的条件, 需要学会的方法. 然而在方法上能优化的空间就比较有限了, 阅读源码依旧面临不少问题
-
比如由于JDK追求高效并且可靠, 所以里面很多写法含义是需要时间才能分析明白, 甚至需要查找一段时间资料才能解决某个问题. -
又比如可能我们词汇量是够的, 但是由于语法原因依旧不能准确理解英文注释含义, 大段的英文注释确不知道哪是重点.
核心问题也就是好的方法能达到理解源码的目的, 但是很难再优化节省时间, 提高效率
送给大家的礼物
https://github.com/gaozhilai/open-jdk1.8-analysis
项目基于openjdk1.8, 代码范围预计覆盖掉java.utils以及java.lang包下的类, 目前从类的常见和重要程度逐步分析. 个人力量是有限的, 欢迎大家踊跃参与到项目中来, RRADME中详细说明了参与方式, 欢迎大家PR, 让我们一起成长, 一群平凡的人也可以成就不平凡的事