一个普通大学生的2021春招面经——其实只是流水账

Ⅰ 前言

2021年,大三第二学期,双非一本,计算机科学与技术专业,人生中第一次找工作,面试。

我的方向是后台开发,主语言 Java,项目是三个中间件,暂时没有业务项目。具体可以看我下面的文章👇

Java 项目博客

Java 项目源码

记录一下自己整个的面试经历,自己的一些碎碎念,包括我面到的题,跟着进度更新,希望能有个好结果。(cross finger)


3月23日更新,百度,腾讯,EMQ 已OC,✌

两周多的春招之旅结束,不想再面试了,这三个 offer 都很满意,所以之后的面试就打算推掉了。

Ⅱ 面经

A. 腾讯

腾讯我是在牛客上找的内推,投的后端开发。

3月6号在牛客投的简历,然后当天网申的链接就发来了,当天简历被处理,显示状态在安排面试。

3月8日,收到邮件,安排3月9日晚上一面,惶恐到爆炸。

说实话,怎么都想不到安排得那么快,因为我投得大部分简历都显示的是在处理,有几家显示简历已被查看,只有腾讯是当天就过了,两天安排了面试。

由于是人生中第一场面试,还是个大厂,非常非常紧张,在电脑前等待的时候已经有冲动想逃了,觉得脑子一片空白😭。

万幸的是,面试官人很好,我都不知道自己哪一刻突然就放松下来了,面试官先介绍了一下他们部门,问我为什么选择这个部门。

由于我的项目都是中间件,我也对这方面比较感兴趣,相较于做业务来说,我当时就选择的 TEG 的基础架构。面试官说他们是做微信、王者荣耀等等的语音系统的(确实和我想的不一样),需要 C++,问我转语言抗不抗拒,能不能接受这个部门的工作。

聊了聊部门之后,面试官让我介绍了我自己的三个项目,然后提了一些问题,由于我不会 C++,也没有 Linux 的开发经验,所以面试官没有很多问题可以问我的,只问了几个计网的,然后出了道 Medium 的算法题。

  1. TCP,UDP的区别是什么?
  2. TCP 是如何实现拥塞控制的?
  3. TIME_WAIT状态的意义是什么?
  4. TCP粘包了解吗?
  5. 算法题,删除链表中倒数第 n 个结点,LeetCode #19。

大概就这么多,一半的时间在说我的项目,所以确实也没问什么问题。

做这道算法题的时候可能是我这一年最弱智的时候了,看到题的时候我就想到代码怎么写了,然后给面试官讲了一下快慢指针的思路,非常简单。嗯,然后开始自己写链表,生成原始数据,最后发现链表数据有问题,当时汗就下来了,大脑一片空白。我给面试官说这是我人生第一场面试,太紧张了,他表示理解,宽慰了我几句。

总之,算法的逻辑是完全对的,链表也是对的,毁就毁在插入数据的时候自己宛若一个弱智,上一次自己写一个链表然后完成数据的插入已经是很久以前用 C 语言的时候了,刷力扣的时候从来只写数据结构,没写过运行,就发生了这么丢脸的事情,居然毁在了这里。

之后面试官问我有什么问题,我们简单探讨了一下我的规划。我问面试官不会就这么凉了吧,他说没事,如果我被拒绝的话,不要灰心,现在是招人的时候,如果他拒了可能一个小时就有别的部门把我的简历拿走了。听他这么说完我就知道肯定是凉了。

面试官其实提了很多次,关于转语言的事情,我再三表示我是从C语言开始学的,转语言很快的,最后问问题的时候他还是表示了我的技术栈不是很匹配,如果碰到合适的话应该会聊得很好。

总之人生第一场面试惨淡收场。


3月10日,接到了腾讯的邮件,通知我 3月11日晚上参加面试,我被另一个部门捞啦。

3月11日,腾讯另一个部门的一面,是做用户加速之类工作的。

这里我又犯了一个很蠢的错误,3月10号收到腾讯的面试邀请的时候,没有在回复链接中点确认。 所以面试的时候面试官来晚了五六分钟,因为不知道我要面试,引以为戒朋友们,一定要仔细看邮件。

这次的面试问的问题如下,都不难,算是都回答出来了,希望能进下一轮。

  1. 做过网络编程吗?(我的三个项目都是)
  2. 说说TCP和UDP的区别。
  3. TCP拥塞控制是怎么实现的?
  4. 线程和进程的区别是什么?
  5. 进程之间的通信了解吗?
  6. 说说HashMap的底层实现。
  7. 穿插项目,你在项目中遇到困难的地方是什么,能不能说一下。(一时有些楞)
  8. 用过多进程编程吗?(没有,只有多线程)
  9. 说说你用多线程遇到的问题。(扯到了volatile)
  10. 讲一下volatile。

后面就是我问了几个问题,就是你们部门是做什么的呀,能不能给我一些建议之类的。面试官人还是很好的,就是没有怎么笑。这次面试半小时就结束了,也没有考我的算法,不知道是不是我没确认面试邀请留下了不好的印象?


3月15日,接到腾讯电话,我又被捞了。

3月17日,再一次腾讯的一面,这个面试官非常刁钻。

先讲了我的项目,然后揪着一个点探讨了很久,最后以我承认确实有点问题告终。

  1. 讲讲GC,怎么判断一个对象是不是垃圾。
    我说了引用计数和可达性分析,然后着重说了可达性分析,我觉得我说得还可以啊,就是从 GC Root 出发然后找到没有和 GC Root 相连的对象,就可以判定为是垃圾。面试官就揪着这个问了很久,说他不理解,让我详细说说,我就说了从 RC Root 会做一个DFS,相当于一个并查集,

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
C语言面试八股文是指在春季招聘中常见的C语言相关的面试题目和知识点。下面是一份常见的C语言面试八股文,供您参考: 1. C语言的基本数据类型有哪些? C语言的基本数据类型包括整型、浮点型、字符型和指针型。 2. 请介绍一下C语言中的变量和常量。 变量是用来存储数据的内存位置,可以通过变量名来访问和修改其值。常量是指在程序执行过程中不会改变的值。 3. 什么是数组?请介绍一下C语言中的数组。 数组是一种存储相同类型数据的集合,通过索引来访问数组中的元素。在C语言中,数组的大小在定义时就需要确定,并且数组的下标从0开始。 4. 请介绍一下C语言中的指针。 指针是一个变量,其值为另一个变量的地址。通过指针可以直接访问和修改内存中的数据。使用指针可以提高程序的效率和灵活性。 5. 请介绍一下C语言中的函数。 函数是一段完成特定任务的代码块,可以通过函数名来调用执行。函数可以接收参数并返回一个值,也可以不接收参数或不返回值。 6. 请介绍一下C语言中的流程控制语句。 C语言中的流程控制语句包括条件语句(if-else语句、switch语句)、循环语句(for循环、while循环、do-while循环)和跳转语句(break语句、continue语句、goto语句)。 7. 请介绍一下C语言中的结构体。 结构体是一种自定义的数据类型,可以包含多个不同类型的成员变量。通过结构体可以将多个相关的数据组织在一起。 8. 请介绍一下C语言中的文件操作。 C语言中的文件操作主要包括打开文件、读写文件和关闭文件。可以使用标准库函数来进行文件操作,如fopen、fread、fwrite、fclose等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值