原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处。
庚子年庚辰月,狂风肆虐,飞沙走石。似在风中藏了把刀子,砍翻了我头顶的连衣帽。
今天等来了久违的面试。在我的印象里,面试就是要面对面的。因为疫情的缘故,过去几周我经历了太多的视频和电话面试,总是凉凉。想到一本正经的面试官,下半身可能藏在被子里,或者蹲在马桶上,我就满脸的不自在。
主要还是因为我无法展示自己的风采,这让我很是苦恼。所以今天抓住机会,我要好好的表现一番。
车行飞快,绕城半圈。结账付款,一气呵成。我低下头,用手遮住屏幕看了下地图。心说:到了老弟,接受我的蹂躏吧。
我抄着口袋挤进电梯,不小心蹭到旁边的姑娘。她一脸厌恶的侧过身子,生气的划拉着自己的手机屏幕。为了在面试前保持美丽的心情,我自动将其忽略。
我是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老版本里是真理,新版本里被推翻的知识点。随着时间的流逝,面试官脸上的笑容也越来越美丽。他仿佛成了一只吃人的老虎,张开了血盆大嘴。
Java的PECS原则是什么?
java8的ConcurrentHashMap为何放弃分段锁?又是怎么实现的?
能手撸一个准确的二分查找算法么?(纸上写,不给电脑)
ZGC的染色指针是什么?
...
能问到这些东西,证明面试官也是非常的 博学 ,如果我平常不是多看了一些xjjdog的文章,或许就被他给唬住了。
听到这里,我再也压制不住心中的怒火。
双重检查,已经是一个反模式, sonar
甚至专门有规则去分析。我们平常应该尽量避免去这么写代码,分析这东西有什么用?
你不分析一下,怎么知道是反模式?面试官不依不饶。
我觉得双方应该都需要冷静一下。同时,我也认识到双方之间深深的鸿沟。
这个问题我不太懂。您能给我普及一下么?,我终于认怂了。
他呆呆的看了我几秒,应该是没料想到我会有这样的问题。
我向来忍受不了尴尬的沉默。我捂着肚子,说: 肚子有点不舒服,我能先去一趟厕所么?
他几乎是瞬间,点了点头。
我穿过噪杂的办公室往厕所走,看到一个工位上,电梯遇到的小姑娘,正在恭恭敬敬的听着旁边一个秃顶大叔,向她咆哮。
这些年轻人啊,向来没有怜香惜玉的情操。
我是真憋急了。找到厕所,宽衣解带开闸放水一气呵成,顿感无比的舒畅。
电梯就在厕所旁边,违背风水的设计。
刚走下几个匆匆赶来上班的员工,我侧身而入。从电梯缓缓关闭的缝隙中,映射出了我尿遁的事实。
作者简介: 小姐姐味道 (xjjdog),一个不允许程序员走弯路的公众号。聚焦基础架构和Linux。十年架构,日百亿流量,与你探讨高并发世界,给你不一样的味道。我的个人微信xjjdog0,欢迎添加好友,进一步交流。
热门文章
♮ 必看!java后端,亮剑诛仙(最全知识点)
后端技术索引,中肯火爆。全网转载上百次。
♮ Linux生产环境上,最常用的一套“vim“技巧多张动图演绎常见操作,让你快速掌握vi捷径
♮ 学完这100多技术,能当架构师么?(非广告)精准点评100多框架,帮你选型
♮ Linux上,最常用的一批命令解析(10年精选)最简洁有力的Linux命令总结
♮ 一天有24个小时?别开玩笑了!一个典型的小姐姐味道技术文章
♮ 这次要是讲不明白Spring Cloud核心组件,那我就白编这故事了最浅显易懂的微服务体系文章
♮ 企业内耗成瘾者第一人称水文
♮ 程序员画像,十年沉浮不可错过的人生总结,劝退神器
♮ 领导看了会炸毛的溢出理论你是否也天天下班被@?
♮ 杀机!沉默是金。你确定么?