面试官很牛,逼我尿遁

原创:小姐姐味道(微信公众号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,你可以根据结果分析一下怎么执行的。

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

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

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

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

我期望着他能聊一些比较高级的话题,比如分布式、事务、架构思想方面的问题。结果他一直在和我聊一些具体的实现方式。比如老掉牙的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个小时?别开玩笑了!
 一个典型的小姐姐味道技术文章
♮ 这次要是讲不明白Spring Cloud核心组件,那我就白编这故事了
最浅显易懂的微服务体系文章
♮ 企业内耗成瘾者
第一人称水文
♮ 程序员画像,十年沉浮
不可错过的人生总结,劝退神器
♮ 领导看了会炸毛的溢出理论
你是否也天天下班被@?
♮ 杀机!
沉默是金。你确定么?

版权声明:本文为lycyingO原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lycyingO/article/details/105630600

智能推荐

[学习记录,]Mybatis入门

环境: Eclipse 2019 Tomcat 9.0 jdk1.8 开搞 首先创建工程 结构如下 导入Jar包 可在mybatis官网下载 http://www.mybatis.cn/82.html 配置文件mybatis-config.xml 事务管理有两种:JDBC和MANAGED JDBC: MANAGED 数据源类型:UNPOOLED、POOLED、JNDI 创建实体类文件User.ja...

运用for语句来判断数组中值得大小

总结: 1将if语句与数组联合起来判断输入中各组中的最大最小值; 2注意:定义的数组数量是躲多少就要输入多少组数据,少输入就无法输出;...

Bridging signals

Bridging signals Time Limit: 1000MSMemory Limit: 10000K Total Submissions: 10926Accepted: 5982 Description 'Oh no, they've done it again', cries the chief designer at the Waferland chip factory. Once ...

一天一大 leet

一天一大 leet 题目(难度:困难): 示例 抛砖引玉 官方答案 高手在民间 菜鸡的自白 20200606 题目(难度:困难): 给定一个未排序的整数数组,找出最长连续序列的长度。 要求算法的时间复杂度为 O(n)。 示例 示例 抛砖引玉 要求算法的时间复杂度为 O(n),即限制了只能循环一次; 先对数组排序 循环数组记录后一个元素等于前一个元素+1或者等于前一个元素的数量 满足条件++,不然重...

Tensorflow实现的CNN文本分类

https://blog.csdn.net/somtian/article/details/69359498 原博文, github 在这篇文章中,我们将实现一个类似于Kim Yoon的卷积神经网络语句分类的模型。 本文提出的模型在一系列文本分类任务(如情感分析)中实现了良好的分类性能,并已成为新的文本分类架构的标准基准。 本文假设你已经熟悉了应用于NLP的卷积神经网络的基础知识。 如果没有,建议...

猜你喜欢

JDBC新手入门教程

开发工具:idea 数据库:mysql jar包:junit-4.10 mysql-connector-java-8.0.18 junit-4.10下载 mysql-connector-java-8.0.18下载 注意1:jdbc的驱动因为使用的是mysql-connector-java-8.0.18,所以为(“com.mysql.cj.jdbc.Driver”),而不是(...

Lua 排序 table.sort

    正如C#中有Array.Sort(),lua中也有自己的排序方法即table.sort(table,function)。     lua中的排序默认是从大到小的排序;     传入一个方法参数,可以使排序从小到大; 打印结果:  ...

SURF算法简述及Python标记SURF特征检测实践

目录 一、SURF算法 1.算法简介 2.SURF与SIFT的具体差异 二、Python代码实践 1.测试环境 2.测试代码 3.核心函数 4.测试结果 一、SURF算法 1.算法简介 SURF(Speeded-Up Robust Features)加速稳健特征,是一种稳健的局部特征点检测和描述算法。 SURF是对SIFT算法的改进,该算子在保持 SIFT 算子优良性能特点的基础上,同时解决了 S...

Selenium3自动化测试——19.读取数据文件

1. 实现目标 在测试与开发中,经常需要对文件进行各种读取操作。这里介绍针对txt、csv、xml、json文件的读取。 2. 读取TXT文件 2.1 user_info.txt文件 2.2 读取txt文件.py 2.3 实现结果 3. 读取csv文件 3.1 user_info.csv  这里要注意,csv文件本身打开是utf-8的,而不是乱码 3.2 读取csv文件.py 这里,针对...

Flask 介绍

Flask 学习笔记 一、Flask 简介         Flask 是一款非常流行的 Python Web 框架,出生于 2010 年,作者是 Armin Ronacher,本来这个项目只是作者在愚人节的一个玩笑,后来由于非常受欢迎,进而成为一个正式的项目。         Flask 自2010年发布第一个版本以...