在牛客上了看了好多佬的面经,确实给自己提供了帮助,再次感谢佬们的面经!我把自己面试的经历也分享给牛友,祝大家都拿到自己想要的offer!# 面试复盘## BG双非本+末流211硕+无竞赛+无实习+只有实验室的项目经历## 面经### 腾讯---软开-java#### 一面凉经 3/18面试官没有开摄像头,maybe是kpi面,这也是我的第一次面试,整体表现巨差无比,给我留下了深深的打击,觉得自己就是个小废物。上来经典的自我介绍,然后面试官就问我项目中的难点是什么,也没有追问。接下来就是提问环节Q1:Mysql和Redis的区别?---->个人怎么用的Redis?Q2:为什么用kafka?---->kafka重复消费怎么解决?Q3:进程、线程、协程的区别。(我是菜鸡,没有复习到协程,丢死人了。)Q4:讲一下对策略的理解Q5:三道算法题:1、字符串相乘 ---->2、LRU---->3、乘积最大子数组(基本都是leetcode上的热门题目,但是我没有写出lru,让我深深的知道自己准备的是有多么的不足了,惨痛的经历,我是菜狗啊啊啊啊啊啊啊)Q6:TCP和UDP的区别,估计是我回答的逻辑不好,就没有追问了Q7:三次握手以及其中的细节,比如第二次握手失败会发生什么。然后就没有再问了,哭死,面试官很温柔但奈何不了我太菜了。第一次面试的紧张,我在写代码的时候既然在考虑输入输出,在面试官面前改输入输出的函数,第一次给了鹅,我太不珍惜了。### 快手---软开-java#### 一面凉经 3/19这次的面试官开了摄像头,我回答不上来的还会给我讲解,告诉我答案,在挂掉之后我也没了自信。经典自我介绍开头+项目中的难点。Q1:索引以及一系列的追问,最后出了一道题select * from t where c>0 and b!=1 and d=2;问我如何设计索引。答案是联合索引(d,c,b,a)Q2:乐观锁 和 悲观锁 。CAS的实现原理Q3:内存溢出和资源爆炸,讲一下自己经历过的内存溢出和资源爆炸Q4:kafka如何实现顺序消费还有一些关于日常使用的追问Q5:进程的并发执行问题,以及常用的锁。出了个题,讲一件i++如何实现上锁Q6:websocket如何实现通信,要提到sessionQ7:手撕:n个骰子投出为k的概率。这次面试对我打击巨大,面试官说我基础不好,要加强一下自己对基础知识的理解。也彻底没了自信,坐实了自己菜狗的身份。### 美团 ----软开-数开没错。这次岗位跟之前不太一样,我投错了,就是那么的sb,哎,硬着头皮面的。#### 一面 3/27经典的自我介绍,但是没有问项目中的难点。让我讲了将项目具体是做什么的,我巴拉巴拉的介绍了一遍。然后问我学过sql没,我信誓旦旦的说学过,平常经常用,然后一道sql手撕+算法就来了。sql手撕: employee表,找出只有五个直接下属的经理```sqlSELECT e.nameFROM employee eJOIN employee sub ON e.id = sub.managerIdGROUP BY e.id, e.nameHAVING COUNT(*) >= 5;```算法手撕:划分字符串,尽可能多的划分,同一字母最多出现在同一个片段中然后问了我听过事务没,我说听过,让我讲一下事务的特性。然后就没然后了,就让我反问了,我都感觉是kpi了,惊喜的是第二天发二面通知了。#### 二面 3/31自我介绍,然后上来就说我们考察代码能力的,直接扔出来一道题“K个一组链表翻转”,秒了。然后他看我做的太快,说再来一道吧,“合并区间”依旧秒了,都是hot100的题。然后他说我能把题背下来也是能力,我说我最近在经常刷题。然后就是八股拷打Q1:虚拟内存是什么 虚拟内存的实现 虚拟内存遇到空间不够了怎么办,虚拟内存会把资源存在哪里? 内存不够了怎么办Q2:tcp 如何保证稳定,详细讲一下保证稳定的机制,我讲的是超时重传。syn是什么,有什么用Q3:CAS(没错又问到了cas,这次哥们确实会了)Q4:线程切换Q5:索引,考了我最左匹配原则Q6:聊到了项目,我介绍了项目具体是做什么的,我自己的负责的内容,以及项目中的人员分工Q7:问我为什么选择这个方向,之前没有做过(我不敢说是我选错了,我说出于热爱和好奇,哭死)Q8:聊到了海量数据压缩,我从深度学习和算法的角度分别介绍了一下,没办法撞到了哥们擅长的领域Q8:聊到了AI,讲了讲我是如何使用ai的,以及对ai的看法。ai大势所趋这次面了70分钟左右,最开始我感觉面试官对我是无感的,但是我也尽力的去回答每一个问题,有答的好的答的不好的。面试过程中,面试官说了一句话“你是有自己的理解的。”所以我觉得在面试中还是要尽情的展示一下自己,让面试官感受到你的优点和激情。#### 4/1面试官通知二面结果,后续有人跟我联系#### 4/6号hr电话oc#### 4/9号offer## 感悟运气很重要,但是运气是留给有准备的人的。自己没有把握住鹅厂的面试,痛啊,刻在心里的痛啊。快手的打击让我彻底丧失了自信,陷入自我怀疑,从头又看了一遍八股,牛客上刷面经。java后端开发异常的卷,在面完数据开发之后有着深深的感受,大家在选择职位的时候可以酌情考虑吧。我确实卷不动。个人的简历过不了阿里、字节、蚂蚁、饿了么、京东、oppo、vivo、滴滴、作业帮等等的初筛,连面试都约不上,个人条件确实很有限。美团太好了,我是团孝子,我爱喝开水,我爱说实话。## 建议1、手撕,hoot100必刷,必刷,必刷,重要的事情说三遍。尤其是动态规划,贪心。面试的时候如果是模板题写不出来基本就凉凉了。2、简历上列出来的东西要能和面试官聊下去,面试官会看着简历问问题。3、面试的时候不要紧张,不用因为某个问题回答不上来就毁自己的状态。而是要尽情的展示自己,从思维上,情绪,性格上等等方面,万一有哪个点打动面试官就成了。4、运气是留给有准备的人的,还是要从自身出发,踏实准备,面的越多就会面的越多。5、合理评估自己准备的情况,java软开卷不动就卷数开,测开,前端,程序员是互通的,不要被语言,前后端限制住了,我们具备的是在这个领域如何快速学习的能力,而不是一门java语言学到死。6、八股是枯燥的,在回答八股的时候要用自己的话说出来,最好结合自己做过的项目,而不是背诵,要给面试官一种错觉,这个问题我在项目中思考过,而不是在八股文里背过。7、面试前在牛客上找对应岗位的面经,把面经里的问题都过一遍,最好再做点问题发散。