暑期实习 面经

腾讯的暑期实习面经~

背景介绍

本人是华中科技大学计算机专业大三的学生,应聘的是腾讯Java后端开发。技术不是很强,没怎么做过Java的开发,只是熟悉Java语法,对计网、操作系统这些方面有所了解,最近才学的MySQL,只会写一些SQL语言。

提前批

一面

面试官上来先介绍了他们组做的工作,他们是微信部门一个做游戏平台的部门,然后主要用的是C++, 看我这边投的的Java开发,所以问我愿不愿意做这方面。我就说没啥问题吧。然后就开始自我介绍balabala。

Java

  • final关键字的作用
  • == 和 equals的区别
  • 常用的集合类有哪些?哪些是线程安全的?
  • Java如何开启一个新的线程?(多线程这块我不是很熟悉,就说了通过Thread和实现Runnable接口)
  • JVM垃圾回收算法你能讲一讲么?(不会。。)

操作系统

  • 进程间同步的方式有哪些?Linux中terminal运行程序时按ctrl+C终止程序,属于哪一种同步方式?(第二个我答错了,面试官说是信号,我突然想起来操作系统实验有做过相关的……)

  • 线程是如何进行同步的?(不知道..)

  • 僵尸进程和孤儿进程你了解么?(emmm,都不知道)

  • 如何查看CPU使用率?如何查看磁盘使用情况?

  • awk sed这两个命令有用过么?(用过,但不是很会)

  • 如何查看进程使用的端口号?

做题

  • 实现一个栈,要求返回最小元素的时间复杂度为O(1)

看到这个题目有点懵逼,之前看公众号的时候有看到过这个题目,但是我忘了怎么解决了orz…想了有一会,说了一个解决方案但是有问题被否了。最后没想出来就跟面试官讲了。面试官还给我讲了该怎么解决,用另一个栈来存储最小元素,出栈入栈的时候进行判断就行了。自己还是太菜了。

数据库

  • 数据库你了解么?

哎,这个方面真的吃了大亏。学校数据库这门课开得太晚了,之前自己也没深入学习数据库相关的内容,面试时基本都是必问的。所以最近在疯狂补相关知识。面试官问了我就坦白不是很会,目前只会写一些SQL增删改查,但我已经在学了,就也没多问了。

面试结束,面试官问我有没有什么要问的,我就请他评价一下我这次的面试。他说Java这块语言掌握的还行,但JVM还是要了解一下(在看书了…)。Linux进程这块不是很熟练,建议我看一看那本《Unix系统环境高级编程》(好像是这本书?),学习一下。

一面差不多就这些。总的来说感觉问的不算很难吧,总共面试才二十几分钟。虽然也有挺多答不上来的点,但总体体验良好,不会的面试官也会把答案给你讲一下,算是消除了自己对于面试的恐惧心理吧。

一面

刚才那面完了没一小时就有tx的邮件,让第二天早上电话面试,官网一查还是初试,群里咨询说可能是交叉面,就没管了。到了约定时间面试官忙着,后来跟我换了个时间。

面试开始了我才知道原来不是一个部门了,是一个新的部门,主要做的是Linux系统资源监控平台这么个工作,看到我简历里有写相关内容,所以就发起面试了。具体技术内容没怎么问,主要介绍了一下他们是做什么的,然后我问了一下我如果去了,提前需要对哪些技术方面准备一下,他就沿着架构组成部分都给我讲了一下。然后他让我介绍了一下我做的Linux系统监视器和MIPS CPU设计,就介绍了一下。这面基本就差不多了。

这次面试有点出乎我的意料,面试官没问什么技术方面,重点在我是否对他们做的这个方向感兴趣,还挺好的,希望能继续走下去~

二面

本来官网显示状态还是复试,时间尚未约定,做着作业突然收到了面试官的电话,就开始面试了。

这一面也没问什么技术性的问题,主要就是就两个项目Linux系统监视器和MIPS CPU问了问。问了为什么要做这些项目,是学校课程还是个人兴趣,怎么实现的,实现的时候有什么难点。然后又问我主要用Java,为什么没写Java项目,然后我就水了一下软工的那个项目。又问了一些以后更想往哪个方向发展,是否读研这些规划上的问题。最后问了下暑期实习时间安排。差不多这些就完了。事发突然,也没问什么技术难点,所以他问我有什么想问的没,我这也没上想问的,就挂电话了。

本来觉得自己表现得还凑合?十分钟后官网查询,发现自己被挂了,💔. 哎,挂的不明不白的,继续努力吧。


正式批

事务型开发 一面 5.8

上来就自我介绍,项目经历也拉垮地介绍了一下。问了一下平时主要做什么的,Java有没有做出什么项目(没有……)。了解完了就让我用Java实现一下归并排序,然后就让我自己做。早上才复习的归并,做的时候有点紧张了,有个点写错了,code估计10min,找bug都找了估计有10min。写完了给面试官说了一下,他检查了一下代码,看了看测试用例没问题就开始继续问问题。

  • JVM垃圾回收机制了解哪些?(不了解
  • AOP有用过么,聊一聊我的理解?(昨天才学,没啥理解……
  • Linux相关问题
    • 平时我用的那些命令
    • awk/sed 熟悉么(no
    • netstat熟悉么,tcp有哪些状态你知道么(netstat有用过,但是真的不熟悉,状态什么的也不知道

(感觉面试官不知道该问我啥了。。)感觉你平时代码写的有点少啊,Java都做了些什么?问我觉得自己擅长什么,这个地方答的也不是很好吧。。就问完了。

提问环节

  • 能不能评价一下刚才的面试

    面试官说我这个基础不是很好,简历里面写的有Linux系统资源监视器,问问题感觉了解的不是很多。有点浮于表面,没有深入挖掘

  • 事务型开发是什么?有点好奇

    事务型开发源自于数据库事务这个概念,部门做的是金融相关的方向,所以对于事务属性看的很重,对这个方面有侧重,所以叫事务型开发,本质还是后台开发。

总结

这段时间拼命的学习,补充自己不会的东西,感觉总结还是少了,虽然跟着别人做东西,但是没有自己总结回顾。学完了这些技能之后,一定要自己做出点项目然后总结总结。另外我发现JVM和Linux还需要好好学习一下,JVM不说别的,垃圾回收还是要知道掌握的,Linux常用命令也要熟悉一下。加油💪

0%