今日头条Java面试技巧分享:写个消息中间件
每个时代 , 都不会亏待会学习的人 。
文章插图
作者|yes|掘金
大家好 , 我是 yes 。
这种设计类问题想必大家都不陌生 , 面试时或多或少都能碰到 。
比如如何写一个线程池?如何写一个 HashMap ?如何写一个 RPC 框架等等 , 当然这里的写不是真的叫你用代码写出来 , 只是说说设计理念 , 整体架构 。
这个面试题来自于一个读者的字节面试经历 , 我会从面试技巧和消息中间件的设计两个方面阐述 。
我觉得重点在于面试技巧 , 因为它通用 。
两种极端的情况大多数同学遇到这种问题会出现两种极端的情况:
- 第一种:一脸懵逼 , 两眼无神 , 不知从何说起 , 万般思绪 , 都化作一声叹息 。
- 第二种:夸夸其谈 , 像是口中架起了一把加特林 , 哒哒哒哒哒哒哒哒 , 还冒着蓝火 。
文章插图
第一种不用说了 , 好一点的面试官可能会引导你 , 会问一些提示性的问题 , 一步一步地带你渐入佳境 , 当然你要是胸中无点滴 , 那还是没救的 , 场面就异常地尴尬 。
第二种会把面试官整蒙了 , 或许你真的懂很多 , 很多细节也都清晰 , 但是你不能一股脑儿的都抛出来 , 这会显得你抓不住重点 。
面试官也是人这点其实很关键 , 很多把面试官当成一个莫得感情的提问机器人 , 觉得他无所不能可以完全 get 到你的点 , 殊不知你引以为傲的细节回答 , 他可能觉得你在说蛇皮 。
是人就会有感情 , 就需要交流 , 好的面试官会把控整体进度 , 从拉家常开始 , 让场子热起来再一步一步的深挖 。
当然也有一些面试官比较弱 , 这时候就需要你来特意地流出一点空白 , 来让面试官涂鸦 , 让面试官感觉你这人就很舒服 , 你这波就稳了 。
当然即使面对着把控全场的面试官你也得主动出击 , 每个人都有自己的擅长点 , 你需要引导面试官来询问你的长处 。
正确的回答姿势正确的回答姿势是 BFS(广度优先搜索) 而不是 DFS (深度优先搜索) , 什么意思呢?
就是我们需要先从大局上讲出需要设计的东西的重点 , 然后再等待面试官的继续提问 , 深挖 。
我们需要揣摩面试官的心理 , 从他的提问可以看出他想要知道的重点是哪个方向的 。
比如就拿 HashMap 来说 , 你简单的把获取、写入、冲突处理、扩容啥的都说了 , 然后等待面试官接下来的提问 , 有可能会往线程安全方面深入 , 也有可能会往扩容方向再挖 , 比如引出 Redis 的 hash 扩容等等 。
所以说给面试官留提问的机会 , 抓住他的喜好或者说熟知的方向回答 , 这样如果你答得好 , 相互之间谈的来 , 面试官会对你高度认可 。
而且在说各设计要点的时候也要注意停顿 , 要留机会给面试官插话 , 让面试官充分参与你的设计 。
还是拿 HashMap 作为例子 , 比如你说了获取、写入、冲突之后稍作停顿 , 这时候大概率面试官还会问还有吗?让面试官有参与感 , 让他感觉经过他的引导这个设计才逐步地完善 。
文章插图
当然如果不问也没事 , 你停顿下继续说就行 。
让面试成为一场技术交流 , 这是面试的最高境界 , 相信面试完了之后双方都会有意犹未尽的感觉 , 惺惺相惜就是这么来的 。
但是这种场景也不是这么容易碰到的 , 首先你和面试官得有相同方向的喜好 , 比如你对 JVM 有很深入的研究 , 而面试官对存储方面有很深入的研究 , JVM 懂的不深 , 这样就碰不出火花了 。
所以说会有很多人碰到这么个情况:我面这个公司一面挂 , 另一家公司面面超神 , 这都是很正常的 。
- 史无前例!1003家小米之家在今日同时开业
- 未来想进入AI领域,该学习Python还是Java大数据开发
- 用户|2020互联网「年终盘点」之盘点:百度最泪目,趣头条接地气
- 曝Redmi Note 10 Pro获认证:8GB内存
- 小米11今日再次开售!轻装上阵3999元起 来“抢”吗?
- 虾米音乐宣布关停!我的歌单如何导入QQ音乐、网易云音乐?
- 学习大数据是否需要学习JavaEE
- …手机真好…
- 虾米音乐宣布:永别
- 虾米音乐宣布关停:今日停止会员充值,开启个人资料处理通道