原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处。java
庚子年庚辰月,狂风肆虐,飞沙走石。似在风中藏了把刀子,砍翻了我头顶的连衣帽。程序员
今天等来了久违的面试。在个人印象里,面试就是要面对面的。由于疫情的缘故,过去几周我经历了太多的视频和电话面试,老是凉凉。想到一本正经的面试官,下半身可能藏在被子里,或者蹲在马桶上,我就满脸的不自在。面试
主要仍是由于我没法展现本身的风采,这让我非常苦恼。因此今天抓住机会,我要好好的表现一番。算法
车行飞快,绕城半圈。结帐付款,一鼓作气。我低下头,用手遮住屏幕看了下地图。心说:到了老弟,接受个人蹂躏吧。设计模式
我抄着口袋挤进电梯,不当心蹭到旁边的姑娘。她一脸厌恶的侧过身子,生气的划拉着本身的手机屏幕。为了在面试前保持美丽的心情,我自动将其忽略。数组
我是xjjdog,别的不会,代码很牛。搞了10年JAVA,组的都是关键零件。多的时候,也有四五十号人,喊我一声牛总监
。微信
作完自我介绍,坐在我对面的面试官一脸平静,没有任何表情。但我知道,他的心里必定在震颤,正在搜肠刮肚的找问题,来挫挫个人威风。架构
我向来是不吃这一套的。它强任它强,清风拂山岗。它狂任它狂,明月照大江。并发
就在我一愣神的时候,他刷刷刷在白板上,写下一段代码,让我分析一下最终的结果是啥。分布式
我瞪大了眼睛一看,只见白板上,有这么个东西。空格还贴心的给我标注出来。
int a = 2;
int b = a++ << ++a + ++a;
System.out.println(b);
复制代码
我一看就头大了。最怕这种不加括号的炫技代码,它一般会带我回到痛苦的学生时代。
你应该把主要计算逻辑用括号扩起来,这种代码几乎无法阅读。我建议说。
他看了我一眼,没有言语,刷刷刷,加了几个括号。我定睛一看,惊出一身冷汗。
int a = 2;
int b = (a++) << (++a) + (++a);
System.out.println(b);
复制代码
我心想你耍我不是?这括号加和没加有什么区别。我尝试着去推导这个过程,越分析越心惊。
面试官看出了个人窘境,他露出了久违的笑容。
我能够直接告诉你结果,是个整数,他的声音仿佛来自远方,结果就是1024
,你能够根据结果分析一下怎么执行的。
亲爱的同窗们,大家也不妨反向分析一下。这个问题很是的刁钻,就连我如今平心静气的分析,都要花费很长时间。在当时剑拔弩张的形势下,在面试官死死盯着你的时候,个人脑子一团浆糊。但个人自尊不认输,因此我尝试着从不一样角度去倒推。
当时我就想。1024
是2
的10
次方,但不管怎么进行分析,都不会获得这样的结果。短暂的思考以后,我认输了。
咱们日常不会写这样的代码,一段的沉默以后,我只好拿出杀手锏,在咱们代码review的时候,会尽力避免这种模糊不清的代码书写方式,这也是咱们治理的重点。
面试官笑的更开心了,露出了整齐洁白的牙齿。他对个人回答很是满意。
我指望着他能聊一些比较高级的话题,好比分布式、事务、架构思想方面的问题。结果他一直在和我聊一些具体的实现方式。好比老掉牙的HashMap的底层结构,String的hash算法里,31
是什么意思,何时会用到红黑树。
我告诉他,31
是测试以后几率统计的结果,也是一个比较合适的质数。至于红黑树,它对咱们理解和解决问题,并无什么大的帮助,由于JDK8
以前都是用的数组加链表,也没见哪些牛逼人物瞎BB。怎么JDK8一发布,就弄的和圣经同样?
聊了这么多不痛不痒的东西以后,我仿佛虚脱了。
对方好像特别喜欢一些死记硬背的冷门知识,或者是一些Java老版本里是真理,新版本里被推翻的知识点。随着时间的流逝,面试官脸上的笑容也愈来愈美丽。他仿佛成了一只吃人的老虎,张开了血盆大嘴。
能问到这些东西,证实面试官也是很是的博学,若是我日常不是多看了一些xjjdog的文章,或许就被他给唬住了。
你用过设计模式吧。Java的单例,双重检查,能分析一下么?
听到这里,我再也压制不住心中的怒火。
双重检查,已是一个反模式,sonar
甚至专门有规则去分析。咱们日常应该尽可能避免去这么写代码,分析这东西有什么用?
**你不分析一下,怎么知道是反模式?**面试官不依不饶。
我以为双方应该都须要冷静一下。同时,我也认识到双方之间深深的鸿沟。
这个问题我不太懂。您能给我普及一下么? ,我终于认怂了。
他呆呆的看了我几秒,应该是没料想到我会有这样的问题。
我向来忍受不了尴尬的沉默。我捂着肚子,说:肚子有点不舒服,我能先去一趟厕所么?
他几乎是瞬间,点了点头。
我穿过噪杂的办公室往厕所走,看到一个工位上,电梯遇到的小姑娘,正在恭恭敬敬的听着旁边一个秃顶大叔,向她咆哮。
这些年轻人啊,向来没有怜香惜玉的情操。
我是真憋急了。找到厕所,宽衣解带开闸放水一鼓作气,顿感无比的舒畅。
电梯就在厕所旁边,违背风水的设计。
刚走下几个匆匆赶来上班的员工,我侧身而入。从电梯缓缓关闭的缝隙中,映射出了我尿遁的事实。
做者简介:小姐姐味道 (xjjdog),一个不容许程序员走弯路的公众号。聚焦基础架构和Linux。十年架构,日百亿流量,与你探讨高并发世界,给你不同的味道。个人我的微信xjjdog0,欢迎添加好友,进一步交流。