18

面试官很牛,逼我尿遁

 4 years ago
source link: http://mp.weixin.qq.com/s?__biz=MzA4MTc4NTUxNQ%3D%3D&%3Bmid=2650521055&%3Bidx=1&%3Bsn=00ac5d5afd0876eebd1ea8ba6462d8e0
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

e6JBVrU.gif

原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处。

庚子年庚辰月,狂风肆虐,飞沙走石。似在风中藏了把刀子,砍翻了我头顶的连衣帽。

今天等来了久违的面试。在我的印象里,面试就是要面对面的。因为疫情的缘故,过去几周我经历了太多的视频和电话面试,总是凉凉。想到一本正经的面试官,下半身可能藏在被子里,或者蹲在马桶上,我就满脸的不自在。

主要还是因为我无法展示自己的风采,这让我很是苦恼。所以今天抓住机会,我要好好的表现一番。

车行飞快,绕城半圈。结账付款,一气呵成。我低下头,用手遮住屏幕看了下地图。心说:到了老弟,接受我的蹂躏吧。

我抄着口袋挤进电梯,不小心蹭到旁边的姑娘。她一脸厌恶的侧过身子,生气的划拉着自己的手机屏幕。为了在面试前保持美丽的心情,我自动将其忽略。

biU7R3R.jpg!web

我是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 ,你可以根据结果分析一下怎么执行的。

亲爱的同学们,你们也不妨反向分析一下。这个问题非常的刁钻,就连我现在平心静气的分析,都要花费很长时间。在当时剑拔弩张的形势下,在面试官死死盯着你的时候,我的脑子一团浆糊。但我的自尊不认输,所以我尝试着从不同角度去倒推。

当时我就想。 1024210 次方,但无论怎么进行分析,都不会得到这样的结果。短暂的思考之后,我认输了。

我们平常不会写这样的代码,一段的沉默之后,我只好拿出杀手锏, 在我们代码review的时候,会尽力避免这种模糊不清的代码书写方式,这也是我们治理的重点

面试官笑的更开心了,露出了整齐洁白的牙齿。他对我的回答非常满意。

EF7fuiz.png!web

我期望着他能聊一些比较高级的话题,比如分布式、事务、架构思想方面的问题。结果他一直在和我聊一些具体的实现方式。比如老掉牙的HashMap的底层结构,String的hash算法里, 31 是什么意思,什么时候会用到红黑树。

我告诉他, 31 是测试之后概率统计的结果,也是一个比较合适的质数。至于红黑树,它对我们理解和解决问题,并没有什么大的帮助,因为 JDK8 之前都是用的数组加链表,也没见哪些牛逼人物瞎BB。怎么JDK8一发布,就弄的和圣经一样?

聊了这么多不痛不痒的东西之后,我仿佛虚脱了。

对方好像特别喜欢一些死记硬背的冷门知识,或者是一些Java老版本里是真理,新版本里被推翻的知识点。随着时间的流逝,面试官脸上的笑容也越来越美丽。他仿佛成了一只吃人的老虎,张开了血盆大嘴。

  • Java的PECS原则是什么?

  • java8的ConcurrentHashMap为何放弃分段锁?又是怎么实现的?

  • 能手撸一个准确的二分查找算法么?(纸上写,不给电脑)

  • ZGC的染色指针是什么?

  • ...

能问到这些东西,证明面试官也是非常的 博学 ,如果我平常不是多看了一些xjjdog的文章,或许就被他给唬住了。

你用过设计模式吧。Java的单例,双重检查,能分析一下么?

听到这里,我再也压制不住心中的怒火。

双重检查,已经是一个反模式, sonar 甚至专门有规则去分析。我们平常应该尽量避免去这么写代码,分析这东西有什么用?

你不分析一下,怎么知道是反模式?面试官不依不饶。

我觉得双方应该都需要冷静一下。同时,我也认识到双方之间深深的鸿沟。

这个问题我不太懂。您能给我普及一下么?,我终于认怂了。

他呆呆的看了我几秒,应该是没料想到我会有这样的问题。

我向来忍受不了尴尬的沉默。我捂着肚子,说: 肚子有点不舒服,我能先去一趟厕所么?

他几乎是瞬间,点了点头。

我穿过噪杂的办公室往厕所走,看到一个工位上,电梯遇到的小姑娘,正在恭恭敬敬的听着旁边一个秃顶大叔,向她咆哮。

这些年轻人啊,向来没有怜香惜玉的情操。

我是真憋急了。找到厕所,宽衣解带开闸放水一气呵成,顿感无比的舒畅。

电梯就在厕所旁边,违背风水的设计。

刚走下几个匆匆赶来上班的员工,我侧身而入。从电梯缓缓关闭的缝隙中,映射出了我尿遁的事实。

作者简介: 小姐姐味道 (xjjdog),一个不允许程序员走弯路的公众号。聚焦基础架构和Linux。十年架构,日百亿流量,与你探讨高并发世界,给你不一样的味道。我的个人微信xjjdog0,欢迎添加好友,进一步交流。

热门文章

♮ 必看!java后端,亮剑诛仙(最全知识点)

后端技术索引,中肯火爆。全网转载上百次。

♮ Linux生产环境上,最常用的一套“vim“技巧

多张动图演绎常见操作,让你快速掌握vi捷径

♮ 学完这100多技术,能当架构师么?(非广告)

精准点评100多框架,帮你选型

♮ Linux上,最常用的一批命令解析(10年精选)

最简洁有力的Linux命令总结

♮ 一天有24个小时?别开玩笑了!

最浅显易懂的微服务体系文章

♮ 企业内耗成瘾者

不可错过的人生总结,劝退神器

♮ 领导看了会炸毛的溢出理论

你是否也天天下班被@?

♮ 杀机!

沉默是金。你确定么?

EnUneen.gif


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK