1 初级开发 - 不要问,只管写
对于初级开发者来说,只要会那几个[增删改查]的操作就够了。花时间去了解底层?那是在浪费生命啊!团队已经帮你踩好坑了,你只管按照团规来开发就行了。
中级开发就要求你会点业务,能解决一些常见问题。底层?那是给架构师准备的,你这种人连看都别看。
哇,你都能升级到架构师了?那你肯定得精通各种[分布式组件]和Java组件的底层原理。不过,在你升级到架构师之前,可别妄想掌握这些高深莫测的底层知识。
原来底层源码知识的唯一用途就是面试时表现!可怜的国人啊,你们就是被培训机构坑了,拿底层源码当"必杀技"去刷人。不过话说回来,即便是对初级开发来说,也无需系统学习,死记硬背两三周就够了。
你写代码时引入的各种包,里面就包含了Java的底层实现。比如HashMap,ArrayList等核心类,再比如线程锁相关的东西,统统都在JDK里。还有Spring Boot/MVC,Dubbo,Netty等分布式组件,它们的底层实现也都藏在对应的jar包里。
对于只负责业务的初级/中级开发来说,看再多底层源码也帮不了你提高开发效率。最多就是满足下你对这个世界的好奇心,知道一些已经存在的东西而已。要说有用,那也就是架构师在解决实际问题时,有针对性地查看底层源码。但即便是架构师,也不是非得全方位地看源码不可。
至于面试?那就是真正的"智商税"了。你只要背几个底层知识点,就能在面试时装得头头是道。可笑的是,即便是对初级开发来说,这样的表现也能博得面试官的青睐。
总之,Java程序员完全没必要去全面学习底层知识,那无异于在浪费生命。你要是有这个时间和精力,不如去学学分布式和微服务组件,那可是真正有用的东西。底层嘛,遇到问题再针对性地看就行了,不要妄想通过看源码就能突飞猛进。最后说一句,面试时记得好好利用底层知识来忽悠面试官,这比什么"我很熟悉"之类的空话强多了。