腾讯Android客户端1-3面面经(offer)

3.27更新,下午接到了hr预约邮件,七点完成hr面,回复1-2周发offer,希望好运带给大家!

—————————————————


要用的语言是Java,本来想投后台开发,但我发现报录比有点低,担心成为炮灰,就转投了Android。前后一共被两个部门面试过,基本上每一面都一个多小时,其中有一个将近2个小时,所以一定要做好心理准备。楼主在第一个事业群挂掉之后,被另一个事业群捞上去了(不过岗位是后台开发),很幸运经过了三面狂轰滥炸操作系统和计算机网络以及若干基础后,流程终于到了hr面。下面给出的是第一个事业群的面经,仅供参考。
有1说1,一共正儿八经的投了三个公司,腾讯是最早面的,也是非常给我信心的,包括面试官真的都不错,非常的耐心,不会的问题还积极的引导我,腾讯的面试官配得上风趣担当和耐心担当的称号。
简单对自己的情况说明一下,非211非985,也没有什么实习经历,没有ACM经历,比赛也参加的不多【拿的名次也一般般...】,准备面试是从今年一月初开始的。


时间 时间节点
2020/3/10 确认内推,base北京
2020/3/11 17:00-18:06 一面过,当场约二面
2020/3/13 17:00-17:32 二面过
2020/3/16 18:53-18:54 打电话约三面,确认base深圳
2020/3/18 15:00-16:00 三面【挂】
2020/3/19 19:45-21:31 一面过【另一个事业群...】
2020/3/24 16:06-17:21 二面过
2020/3/26 16:05-16:59 三面过

一面【66min】

1.自我介绍

2.我看你这简历上的技能咋都写的是Java的东西呢?安卓的项目做过,SSM的也做过,那你后台开发和Android倾向于哪一个?

主要准备的Java,Android没有具体学习过,但是对Android很感兴趣。

3.你咋选的实习地方北京,能来深圳实习嘛?

北京离家近点,去深圳也没问题,在哪工作不是问题。【极强的求生欲...】

4.说说项目,我看你上面有个项目做App的,有准备Android方面吗?

跟他解释了下为啥没准备Android的,然后开始叭叭我的第一个项目。

3.有些SQL比较慢,你咋办?为什么有的SQL这么慢,说说你觉得导致SQL很慢的原因。

大概说了说我的想法,然后问SQL很慢的时候,我说了类似于数据量大、没建立索引啊还有索引建立的不太好等等情况,然后面试官还积极引导我往更多的方面去思考。后来我发现我自己说的很乱,面试完了整理了一下思路,下一次面试的时候说的就比较流利了。

4.内存泄漏?OOM?什么情况会OOM?

说了说内存泄漏是什么,和OOM关系,然后列举了常见的OOM情况,我还跟他说了说使用Vector的时候遇到的OOM情况是怎么导致的。这个问题后来蘑菇街也问我了(蘑菇街面试官说我总结的还挺全hhh)。

5.用过多线程没?说说咋用的。线程池知道不?说说线程池的原理?

我说简单的用过,给他叭叭了下怎么用的。说线程池的地方,先说了说线程池的常用参数,每个参数什么意思,然后说原理。后来还想说的更细一点的时候,就问我别的问题了。

6.对ArrayList一个读操作,一个写操作,你用多线程咋实现。死锁你知道不?你怎么解决?

送分题,多说点,说的越多越好,面试官希望你能多方位的思考。

7.volatile知道吗?volatile的原子性?

简单说说volatile,举了例子结合字节码谈了谈我的理解。

8.Java中的锁知道哪些?

9.线程之间通信的方式?

10.JVM调优,说说你能从哪些方面着手?

没有问一些命令,重点考察的感觉是从哪些角度去思考问题,看过一些总结的博客,JVM那本书上也有介绍,建议多看看,多记忆,多理解,就没啥问题。

11.JVM和GC简单聊聊,结合JVM内存说说GC。

结合HotSpot说了说哪些线程共享以及大概用途,哪些不是线程共享,GC回收的对象是啥,为什么GC不回收本地方法栈、Java虚拟机栈那些,针对不同的特性,说了说年轻代和老年代对应的GC算法,还有方法区回收的条件。

12.HashMap和HastTable,HashMap安全?不安全用什么?hash()?HashTable是怎么实现安全的?

13.我对你的Java基础有了一个了解了,下面我们问问网络相关的知识,计算机网络应该学过吧,那说说TCP三次握手?第三次握手能不能去掉?UDP和TCP的区别?

说的挺详细的,顺带扯了一下包格式、握手的状态、还有SYN和ACK消耗序号,什么叫做无效的连接请求都解释了一遍。

14.你知道长连接吗,说说?为啥用长连接?

问这个问题好像是因为我说啥来着,我提到了长连接。然后问了我长连接之后,又顺势牵出来下一个问题。

15.HTTP1.0和HTTP2.0的区别?说说NIO?

NIO当时我准备的不充分,草草几句收尾,面试官笑笑。

16.HTTPS知道吗?说说SSL?

本来一开始想问我HTTPS和HTTP啥区别,我差点脱口而出了,结果换题了。

17.好了,网络聊到这里吧,我们说说算法之类的吧。跳台阶知道吧,怎么做啊。

剑指offer上的原题

18.一个链表,让你找最中间的节点,你怎么找?

说出来快慢指针,他就说okok了。

19.两个大文件,一个比较大,一个比较小,让你求交集,你怎么做?

一开始我好像听错题了,面试官强调是文件。在后来的面试里,我感觉跟面试官确认一下题意很关键,毕竟有时候信号不好,理解也有偏差。。。

20.那么,我们再问两个智力题吧,没有固定答案,不要限制自己的思路,想到啥说啥,一个粗细不一样的绳子,完整的烧完1个小时,你怎么让他烧15分钟(不一定烧完)。

结合从两头开始烧,半个小时烧完,我给他叭叭了一下,但具体怎么回答的忘了,面试官还给我讲了讲,然后就说嗯,好吧,这题就算你过了。。

21.一副全新的扑克牌,按顺序的,AAAA,2222,3333,这种,你怎么洗牌能洗散开?

说了几种,我把平时洗牌的绝学亮出来了,他还让我说,我想不出来了,他说,嗯好的,这个题算你过吧。

22.C++和C了解吗?

其实大一的时候学过C,不过我没吱声,因为我没复习...

23.面试官问我啥时候有空,约下一面?

下一面?因为我感觉这一面要是过了,难道不应该是另一个人面我,然后再跟我去沟通流程吗。面试官说写代码,还是我看着你,我(1丝丝凉意啊,菜鸡如我)。我说,不会是很难的题目吧?动态规划啥的,我不太会。稍微简单点的还是可以AC的,然后面试官说,这么自信啊?我去,当时我觉得,我给自己挖坑了。赶紧说,没没没,刷的题有限,就刷过一点点题。

24.闲聊,你有啥要问我的啊?问了好几个问题,问完了以后,面试官问我还有啥想问的,不想问问学习资源什么的吗??我就又问了好几个,然后跟我说了说面试的情况。就愉快的say GoodBye了。

问的问题(忘记顺序了):

1)我问:还有下一面吗?面试官给我说了说后面啥情况,如果下一面过了,那么三面不会再写算法题了估计。

2)面试官问我:目前有没有Offer?Java后台和Android你选一个,你做哪个?

3)我问:新人培养计划是啥?以及你们主要负责哪一块的业务?

4)面试官临时想到问我的:有人说Android端走下坡路,你怎么看啊?

5)给我说了说笔试是啥情况。

6)有没有什么学习资源啊?我如果走Android的话,我应该要去学习什么,或者怎么学习会好一些。

PS:因为我算法太烂了,我就问笔试对于能否进下一轮面试的作用大吗?他说,会占一部分,但是也不会全看算法。但是毕竟编程,代码水平不可以特别差吧,还是要有一定代码功底的。

总体感觉:

面试的问题不是很难,如果不会,面试官会引导你,他觉得我说的挺有意思的时候,还笑笑,这就让我更不紧张了。还有就是语速慢点,我可能太紧张了,叭叭的多还叭叭的快。

问问题的话,感觉还是尽量的去了解他们这个部门干啥,自己去了干啥比较重要,毕竟如果面的好,能拿offer,比较offer的话,好比较的。顺便也能看看自己对这个部门感兴趣吗。第一次面大厂,没啥经验,面试是个双向选择的过程,一定要了解对方做啥,自己是不是有兴趣等等方面。

以及回答问题的时候,尽量发散思维,结合实际的例子去说,这样会让面试官觉得你很棒,知道的很多,也有自己的积累和思考,如果回答一个问题照着网上看到的资料背下来,可能会让对方感觉是机械记忆,可能我回答问题的时候,尽可能把很多学习到的知识都串联起来讲出来了,所以面试官对我评价不错。一面没结束就直接约下一面,也是挺意外的。

二面【30+min】

周三下午五点一面的时候,周五下午五点二面,中间还面了个蘑菇街...虽然蘑菇街周四面完之后,已经预定凉一面了(没想到后来蘑菇街约下一面了...)。但是想了想,还是要坚强的准备笔试,万一过了呢,就离BAT又近了一步。

终于到了下午四点五十的时候,我,走进了牛客的面试房间。嗯,视频和话筒没啥问题。我喝着我的肥宅快乐水,等着面试官进来,面试官快5点的时候也进来了,问我调试好了吗。我说,好了,然后他让我点击哪儿哪儿的,开始共享屏幕,然后我靠,我点了之后,发现我chrome版本太低了,不行!我说,我浏览器版本有点低,抱歉,之前理解错您(调试)的意思了,我以为需要用摄像头和话筒,我没注意浏览器版本也有要求。然后我说,等我换个火狐浏览器。

3s换了浏览器我就开始准备写了,面试官说,用你最熟悉的语言写哈~一上来那个界面,main(),测试用例啥的得我自己写....

题目大概和leetcode 59题类似。大概如下,从右上角开始顺时针。剑指offer上也有类似的,反正就是刷题,刷题,刷题啊!!!

输入: 3 输出: [  [ 7, 8, 1 ],  [ 6, 9, 2 ],  [ 5, 4, 3 ] ]

几个while循环解决的,也没和我讨论看看有没有啥思路,写好了,我就喊他,我问他,需要我说说下咋做的吗,他说不用,run下,给我看看就行。然鹅我一开始写的时候就把main给删掉了...然后我就捣鼓了一下,run,边界溢出了,贼尴尬。我就调试,调试了一会,他说,给你放松下要求,去IDE里调试吧。我没搭理他,继续找问题,怎么可能这么容易屈服于IDE呢。

嘿嘿,终于,发现好几个变量写错了地方。改了改,run,成功AC,他说,你这个输出格式和我想的有点差距啊,我说好的呢,我再改改。AC。那边终于给我竖起了大拇指,然后面试官就说这个题还有变种的。。。。。

这里不得不说,我在复习算法的时候,主要看了b站yxc大佬的视频,对我帮助很大,还有怎么快速排错,他自己创办的AcWing也挺好用的。还有就是一面过了之后,马上跟我的内推人沟通了下,他也给了点建议,让我多刷leetcode medium,然后我就大概过了LeetCode 100题里面的常见的题目大概50多道,还有剑指offer里的60道左右(有些太难的,我觉得不会出就没看,之前也有刷过剑指offer,所以复习编程题还好)。笔试之前,把剑指offer上的题思路都顺了一遍,保证自己见到就有思路,能先和面试官交流下自己的思路。

笔试完了,跟内推人说了一声。过了一会,他跟我说,面试官对我评价不错,具体怎么样不能透露,反正就是很好,让我好好准备总监面吧。看到进复试了真的开心。

三面(60min)

大概是3.16晚上快七点的时候,深圳那边给我打电话,确认身份,说觉得我前几面表现还不错,想约下一面,然后问是否能来深圳实习,然后定了周三,跟我说下一面是技术面昂。不得不说,效率好快。

  1. 面试官上来又是一通确认身份,然后再次确认实习地有没有要求?深圳确实没啥问题是吧???
  2. 说说JVM的内存吧,他们都是干啥的?对象怎么创建?
  3. 每个区域都会发生怎样的异常啊,谁会发生OOM?
  4. 说说你对GC的认识吧。
  5. 知道引用计数法吗?引用计数法有啥优点吗?缺点呢?
  6. 可达性分析?
  7. 垃圾回收的几种算法?比较一下。
  8. 你觉得垃圾回收有什么缺点?
  9. 说说垃圾收集器?有没有想过你说的这些垃圾收集器为啥会有这些缺点呢?
关机垃圾回收和JVM问的很详细很详细,有的问题记不太清了...
  1. 我看你还会这个MySQL,那我们来问问MySQL中的锁。你知道有哪些锁吗?
  2. 行锁有啥用啊,相对于表锁?
  3. 知道MySQL主要的两种引擎吗,MySIAM和InnoDB的区别,使用场景?谁有表锁?
  4. 看你了解InnoDB,那你具体说说InnoDB吧。
  5. 面试官:我还问你点啥呢?我:那我说说我的哪个项目?开始叭叭我的项目。没叭叭完,让我停下了。问我这些优化思路是你自己想出来的吗,我说我们组两个人,思路是我想的。
  6. CPU爆满了,你觉得操作系统会干点啥事情?
蒙蔽...答的不对,面试官给我纠正了下...然后就下个题目了
  1. 那我们再说说链表和数组?比较一下它们有啥区别吧,然后再说说数组里面删除一个元素会怎么样,插入一个元素会怎么样,修改一个元素会怎么样,会发生什么事情?
这个地方说的不是很好...
  1. 平时用啥IDE?知道项目run之前干什么吗?
说了个编译和检查错误,但是面试官似乎还想让我说点东西,知识盲区.....后来跟同学交流了一下,应该是预编译、编译、汇编、链接。
  1. 编译期和运行期的区别?
  2. 指针了解吗?
  3. 十亿个数,一个数4字节,然后你怎么找最大的十个数?十亿个数,占多少内存?
  4. 操作系统中有哪些内存知道吗?平时用什么Windows还是Linux?
  5. 说说寄存器?
  6. 了解编译原理吗?知道计算机组成原理吗?平时都学什么课?
  7. 一个人给另一个人发微信消息,说说可能会发生哪些事情?
  8. 长连接短连接说说区别,你知道的哪些是长连接,哪些是短连接?TCP是短连接还是长连接吗?
  9. http是基于什么实现的?1.0和1.1什么区别?
  10. MTU知道吗?以太网帧知道不?MTU大小你知道不?MTU的组成你知道不?
  11. TCP和UDP是否可靠,为什么不可靠or为什么可靠?
  12. 如果客户端长时间不发消息,那服务器端咋办?【差不多这个意思...】
  13. 有GitHub吗?写博客吗?有自己搭建博客吗叭叭叭的【就是问你对技术热爱吗....】
他问我为什么这些东西不写简历上,我说太菜了不值一提...面试官说,那你也得写啊,说明你对技术热爱啊,面试官笑笑。
  1. 除了开发,你有没有考虑过别的就职意向?比如什么.....
当时回答的时候展现了极强的求生欲啊。后来感觉,面试官可能是想给我转其他岗位...嘤嘤嘤哭唧唧...
  1. 你现在还在做项目吗?你们那个项目会去给他们做安装运维啥的吗?
  2. 你有啥要问的吗?
  3. 实习时间和要求?一周五天,三个月。
  4. 实习生去了主要干啥?好像还是没怎么说具体的实习生干啥,就说他们部门是干啥的,做终端。
  5. 转正情况?不出什么幺蛾子,都能留下来。
  6. 啥时候有反馈啊?三天之内吧,还要给大boss看看。还有几个人没面呢。然后第二天中午给我挂掉了。接着被另一个事业群给捞起来了,后来大概了解到三面的面试官对于编译原理和操作系统挺注重的(可能部门要求高,然鹅我太菜了...),所以是挂掉的理由。。。

可能不同部门不同要求,比如我学长的同学去年面腾讯的时候,一个小时AC了Leetcode Medium 四五道编程题,三面总监面就随便聊聊天,包括我在其它面经贴也看到过三面聊聊天,然后我就放松了(因为反应之前表现还可),不过没想到三面面试官很严格,不过面试也有运气问题,希望大家不要放弃!!一定要好好准备,此外,感觉腾讯对编程和计算机基础真的很重视,在第一个事业群的面试过程中让我深深意识到我自己OS复习不全面和计算机网络深度不够,后面不断加强,才幸运的通过了其他的面试。

#腾讯暑期实习##腾讯##面经##安卓工程师##校招##实习#
全部评论
更好奇你的简历内容
1 回复
分享
发布于 2020-03-27 18:44
好文,顶!
点赞 回复
分享
发布于 2020-03-27 18:25
联易融
校招火热招聘中
官网直投
yxc是谁啊,B站上搜不到呀😥
点赞 回复
分享
发布于 2020-03-31 23:22
那我们再说说链表和数组?比较一下它们有啥区别吧,然后再说说数组里面删除一个元素会怎么样,插入一个元素会怎么样,修改一个元素会怎么样,会发生什么事情?
点赞 回复
分享
发布于 2020-04-01 16:40
大佬,「两个大文件,一个比较大,一个比较小,让你求交集,你怎么做」这道题你怎么回答的?有什么要注意的点嘛
点赞 回复
分享
发布于 2020-04-01 18:50
楼主是哪个事业群啊
点赞 回复
分享
发布于 2020-04-05 21:09

相关推荐

13 54 评论
分享
牛客网
牛客企业服务