作为一名程序员,求职面试时,关于源码问题得到了不少面试官的青睐。

张工是一名java程序员,最近到某知名互联网公司面试,做了一份笔试题后,

面谈时,面试官问了这样的一个问题:

下面这段代码有没有优化空间?要是有?如何优化?

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

张工仔细看了一下程序,觉得有点眼熟。

于是说,“这不就是LinkedHashMap源码,暂看不出需要优化的地方。”

 

听张工这么一说,面试官楞了下,面试这么多人,这样回答如此干脆的还是第一次遇到。

 

对于这道题目,前几位求职者要么说是if else 代码过多,要不就说变量命名不规范。都没有看出是LinkedHashMap源码。

 

张工能在第一眼就判断出来,确实很棒。对此面试官很满意,表示当场录用张工。

 

个人觉得,平时在学习时,多留意下阅读源码。

为什么要阅读源码,古语云:“读破万卷书,下笔如有神”。

 

通过阅读源码进行积累,有利于我们把一些零碎的知识点整合起来,知其然知其所以然。

就拿kafka消息队列来说,它是如何实现高性能、高可用的

不仅如此,我们还可以通过阅读源码借鉴,它山之石可以攻玉,如果有需要重新开始自己造轮子,那么参考目前优秀的项目肯定是有所帮助的。

那么如何有效阅读源码?

梳理代码组织层次

当需要看代码的时候,不要找到一个文件就开始,先看看代码组织层次。

 

比如LinkedHashMap就很好理解,继承HashMap,而HashMap实现Map接口。层次很清晰。

 

阅读代码,建议先关注主干,忽略掉一些细枝末节,步步深入,直达目标。

 

以上只是个人看法,不知对此你是怎么看待的,欢迎交流!

https://mp.weixin.qq.com/s/mTYjYB1Jn9K1L1b_8f160A