背景
开始阅读 Java 源码的契机,还是在第一年换工作的时候,被大厂的技术面虐的体无完肤,后来总结大厂的面试套路,发现很喜欢问 Java 底层实现,即 Java 源码,于是我花了半年时间,啃下了 Java 源码,终于进了理想的公司。
以我个人经历来说,阅读源码真的可以帮助你顺利过技术面,找到更好的工作。
阅读源码还可以帮忙我们增加个人自信,学习其优良设计思想,总结出最优使用姿势,避免踩坑,甚至针对工作中的痛点进行创新改造。
而在实际工作中,你可能遇到过这些尴尬:
1、很多 API 的使用,需要先百度,然后再复制粘贴;
2、针对不同的场景,不知道如何设计不同类型的线程池,对 API 的使用没有太多的场景经验总结;
3、代码 review 的时候,提不出意见,自己的代码却常常被别人吐槽;
4、对于工作中 API 使用不方便的地方,想优化,但不知其内部实现原理,不敢动手。
通过调查发现,能绕过以上尴尬的同学,多数都是阅读过 Java 源码、对 Java 底层的构造了如指掌的。这些同学能写团队核心代码,能轻易看出代码漏洞,能总结出 Java 的设计思想,并运用到日常工作中。
所以说阅读 Java 源码,还能让我们结合场景熟练的使用 API,基于工作中使用痛点做一些源码创新,是成为团队核心的技术基础。
思路
接下来我们会先从实际的案例场景出发,对 Java 中 30+ 个核心类进行图文源码解析,并从中总结出设计思想、最优使用姿势和坑,最终以连环面试题进行巩固。
我们对于每个源码类的文章套路为:
1、怎么用:用场景来说明类的重要方法的使用技巧;
2、为什么:源码解析其底层实现源码,复杂的源码会有动图解析;
3、总结:总结出设计思想、最优使用姿势和坑,看看能否为工作中所用;
4、面试题:总结出最新连环面试题,一题接着一题深入,可以作为面试官和面试者的面试指南。
涉及到的 Java 知识非常齐全,主要有基础类、集合类、并发集合类、队列、线程、锁、线程池、Lambda 流等内容,内容几乎涵盖了工作和面试的核心,如果你对这些源码都了如指掌,面试题再千变万化,你也能应对自如。
源码解析主要以 Java 8 为主,对版本变动较大的类会做 Java 7、8 版本的比较。
Java 文章大纲
http://wenhe.online/%22wp-content/uploads%22/2019/08/Java-%E6%BA%90%E7%A0%81%E5%92%8C%E9%9D%A2%E8%AF%950808.png
目录
http://wenhe.online/%22wp-content/uploads%22/2019/09/%E8%AF%BE%E7%A8%8B%E7%9B%AE%E5%BD%95.png