作为一名程序员,求职面试时,关于源码问题得到了不少面试官的青睐。
张工是一名java程序员,最近到某知名互联网公司面试,做了一份笔试题后,
面谈时,面试官问了这样的一个问题:
下面这段代码有没有优化空间?要是有?如何优化?
张工仔细看了一下程序,觉得有点眼熟。
于是说,“这不就是LinkedHashMap源码,暂看不出需要优化的地方。”
听张工这么一说,面试官楞了下,面试这么多人,这样回答如此干脆的还是第一次遇到。
对于这道题目,前几位求职者要么说是if else 代码过多,要不就说变量命名不规范。都没有看出是LinkedHashMap源码。
张工能在第一眼就判断出来,确实很棒。对此面试官很满意,表示当场录用张工。
个人觉得,平时在学习时,多留意下阅读源码。
为什么要阅读源码,古语云:“读破万卷书,下笔如有神”。
通过阅读源码进行积累,有利于我们把一些零碎的知识点整合起来,知其然知其所以然。
就拿kafka消息队列来说,它是如何实现高性能、高可用的
不仅如此,我们还可以通过阅读源码借鉴,它山之石可以攻玉,如果有需要重新开始自己造*,那么参考目前优秀的项目肯定是有所帮助的。
那么如何有效阅读源码?
梳理代码组织层次当需要看代码的时候,不要找到一个文件就开始,先看看代码组织层次。
比如LinkedHashMap就很好理解,继承HashMap,而HashMap实现Map接口。层次很清晰。
阅读代码,建议先关注主干,忽略掉一些细枝末节,步步深入,直达目标。
以上只是个人看法,不知对此你是怎么看待的,欢迎交流!
https://mp.weixin.qq.com/s/mTYjYB1Jn9K1L1b_8f160A