这次面试比较突然。昨天加了hr微信,然后一直没说话。今天早上微信打了声招呼,然后他把我拉进一个群,就三个人,一个部门经历,我和hr。叫我把简历发出来,经理抽时间给我安排个面试。
我把之前的简历修改了一下就发出去了,然后经理问我今天下午可以面试吗(当时大概四点半左右),我第一次遇到这么突然的情况,反正迟早都是要面的,然后我说可以,然后他就说那就五点吧,剩下半小时我就准备了下自我介绍,换了件上衣,弄了下头发,然后就开始了。
面试时间:2022.12.8 下午 五点
面试形式:线上 腾讯会议 一对一
求职岗位:Java开发
持续时间:45分钟(这是我经历过最长时间的面试)
1.先进行下自我介绍吧
巴拉巴拉巴拉......
2.你这个项目的话博客类型和博客是在数据库是怎么实现呢?
我设计了两个表......博客表和类型表是通过id作为主键关联......
3.如果我要实现多个博客类型,数据库你要怎么实现?
一开始我不理解他问题是什么意思,然后就答到其他地方去了。
面试官:我知道你的实现逻辑,那你的数据库要怎么实现?
然后我一脸茫然......又答到其他地方去了(当时压迫感直接飙升)
面试官:我意思是一个博客假如不止一个类型......
哦哦,我知道您要问的是什么了,巴拉巴拉...
面试官:你东西其实是学到的,但是没有学以致用
我:点头+苦笑
4.你这个用redis做缓存,假如我修改博客类型,实际的数据修改顺序是怎样的?
先数据库再缓存......
5.你这个项目中消息队列的使用场景是怎样的?
巴拉巴拉......
6.消息队列在这个项目中的作用是是怎样的?
异步、削峰、解耦......
7.缓存中如果大量数据在同一时间查不到会发生什么情况
缓存雪崩.....
8.那要怎么解决或者预防这种情况的发生?
数据预热、延长过期时间等
9.消息队列中你先反馈给用户再进行存取操作,假如存取失败了,但是用户之前收到成功反馈了,怎么办?
想了好久......把反馈操作延迟至存取之后?
面试官:那要消息队列的意义何在呢?还不如直接进行存取(其实我当时是知道这样不好,但是想不到其他答案)
面试官:那我给你点提示吧,可以从用户交互方面
我瞬间想起来了:先不要反馈成功信息,反馈已提交,存取失败的话再反馈失败......
面试官终于满意了,我这时候脑袋真的好热......
10.算法题:用原生Java实现String.split()函数,怎么实现呢?
我以为我听错了,真的很简单,想了几秒,巴拉巴拉说了一顿。
11.SQL题:查询平均成绩最高的科目
12.好的,总共有两轮面试。如果通过面试的话二面或有一个部门的大领导,快的话两三天后面试,领导比较忙的话三到五天。
反问:如果通过面试的话二面也是技术面吗?
面试官:这个不好说,可能是技术面,可能比我问得更全面,还有技术之外的问题。
总结:总的来说,这是我之前经历过的所有面试中学到东西最多的一次面试,也是最累的一次。首先面试时间长并不是问题多,而是面试官给你出场景题,说一个项目中没有的需求,问你怎么实现。面试官给你时间思考,而且他也不催着你尽快给他答案,也耐心地等,而且回答不出时也会尽量引导你思考地方向。所以说这次面试学到的东西很多。之前背的很多Java八股文,感觉问的都比较少,问的多的还是项目经验。通过这次,以后面对面试官质疑时也要冷静思考,以平常心对待。