春招面经
Ⅰ 前言
2021年,大三第二学期,双非一本,计算机科学与技术专业,人生中第一次找工作,面试。
我的方向是后台开发,主语言 Java,项目是三个中间件,暂时没有业务项目。具体可以看我下面的文章👇
记录一下自己整个的面试经历,自己的一些碎碎念,包括我面到的题,跟着进度更新,希望能有个好结果。(cross finger)
3月23日更新,百度,腾讯,EMQ 已OC,✌
两周多的春招之旅结束,不想再面试了,这三个 offer 都很满意,所以之后的面试就打算推掉了。
Ⅱ 面经
A. 腾讯
腾讯我是在牛客上找的内推,投的后端开发。
3月6号在牛客投的简历,然后当天网申的链接就发来了,当天简历被处理,显示状态在安排面试。
3月8日,收到邮件,安排3月9日晚上一面,惶恐到爆炸。
说实话,怎么都想不到安排得那么快,因为我投得大部分简历都显示的是在处理,有几家显示简历已被查看,只有腾讯是当天就过了,两天安排了面试。
由于是人生中第一场面试,还是个大厂,非常非常紧张,在电脑前等待的时候已经有冲动想逃了,觉得脑子一片空白😭。
万幸的是,面试官人很好,我都不知道自己哪一刻突然就放松下来了,面试官先介绍了一下他们部门,问我为什么选择这个部门。
由于我的项目都是中间件,我也对这方面比较感兴趣,相较于做业务来说,我当时就选择的 TEG 的基础架构。面试官说他们是做微信、王者荣耀等等的语音系统的(确实和我想的不一样),需要 C++,问我转语言抗不抗拒,能不能接受这个部门的工作。
聊了聊部门之后,面试官让我介绍了我自己的三个项目,然后提了一些问题,由于我不会 C++,也没有 Linux 的开发经验,所以面试官没有很多问题可以问我的,只问了几个计网的,然后出了道 Medium 的算法题。
- TCP,UDP的区别是什么?
- TCP 是如何实现拥塞控制的?
- TIME_WAIT状态的意义是什么?
- TCP粘包了解吗?
- 算法题,删除链表中倒数第 n 个结点,LeetCode #19。
大概就这么多,一半的时间在说我的项目,所以确实也没问什么问题。
做这道算法题的时候可能是我这一年最弱智的时候了,看到题的时候我就想到代码怎么写了,然后给面试官讲了一下快慢指针的思路,非常简单。嗯,然后开始自己写链表,生成原始数据,最后发现链表数据有问题,当时汗就下来了,大脑一片空白。我给面试官说这是我人生第一场面试,太紧张了,他表示理解,宽慰了我几句。
总之,算法的逻辑是完全对的,链表也是对的,毁就毁在插入数据的时候自己宛若一个弱智,上一次自己写一个链表然后完成数据的插入已经是很久以前用 C 语言的时候了,刷力扣的时候从来只写数据结构,没写过运行,就发生了这么丢脸的事情,居然毁在了这里。
之后面试官问我有什么问题,我们简单探讨了一下我的规划。我问面试官不会就这么凉了吧,他说没事,如果我被拒绝的话,不要灰心,现在是招人的时候,如果他拒了可能一个小时就有别的部门把我的简历拿走了。听他这么说完我就知道肯定是凉了。
面试官其实提了很多次,关于转语言的事情,我再三表示我是从C语言开始学的,转语言很快的,最后问问题的时候他还是表示了我的技术栈不是很匹配,如果碰到合适的话应该会聊得很好。
总之人生第一场面试惨淡收场。
3月10日,接到了腾讯的邮件,通知我 3月11日晚上参加面试,我被另一个部门捞啦。
3月11日,腾讯另一个部门的一面,是做用户加速之类工作的。
这里我又犯了一个很蠢的错误,3月10号收到腾讯的面试邀请的时候,没有在回复链接中点确认。 所以面试的时候面试官来晚了五六分钟,因为不知道我要面试,引以为戒朋友们,一定要仔细看邮件。
这次的面试问的问题如下,都不难,算是都回答出来了,希望能进下一轮。
- 做过网络编程吗?(我的三个项目都是)
- 说说TCP和UDP的区别。
- TCP拥塞控制是怎么实现的?
- 线程和进程的区别是什么?
- 进程之间的通信了解吗?
- 说说HashMap的底层实现。
- 穿插项目,你在项目中遇到困难的地方是什么,能不能说一下。(一时有些楞)
- 用过多进程编程吗?(没有,只有多线程)
- 说说你用多线程遇到的问题。(扯到了volatile)
- 讲一下volatile。
后面就是我问了几个问题,就是你们部门是做什么的呀,能不能给我一些建议之类的。面试官人还是很好的,就是没有怎么笑。这次面试半小时就结束了,也没有考我的算法,不知道是不是我没确认面试邀请留下了不好的印象?
3月15日,接到腾讯电话,我又被捞了。
3月17日,再一次腾讯的一面,这个面试官非常刁钻。
先讲了我的项目,然后揪着一个点探讨了很久,最后以我承认确实有点问题告终。
-
讲讲GC,怎么判断一个对象是不是垃圾。
我说了引用计数和可达性分析,然后着重说了可达性分析,我觉得我说得还可以啊,就是从 GC Root 出发然后找到没有和 GC Root 相连的对象,就可以判定为是垃圾。面试官就揪着这个问了很久,说他不理解,让我详细说说,我就说了从 RC Root 会做一个DFS,相当于一个并查集,