腾讯Android WXG 实习 面经

腾讯WXG,我是大二下(27届)投简历并面试,所以情况有些特殊,仅供参考

一面

面试官真挺忙的,一来就因为开会迟到了10分钟

  1. 说说Java的乐观锁和悲观锁(没答出来, 面完后才了解什么是乐观锁悲观锁)
  2. 结合JVM运行时内存区域,说说volatile关键字(运行时内存区域没答出来,答出来了volatile,面试官人真的很好,答完后还给我解释为什么需要volatile关键字)
  3. 看你项目里用了Kotlin的协程,你能说说协程是如何实现的呢?(答了一部分,说了一下续体)
  4. 能说说你们项目里面是如何使用协程处理视频帧的?为什么要选择协程呢?(答的还算完整,得到了面试官的肯定)
  5. n个项目拷打的问题…….(拷打的时候还问我了不了解密码学,懵了,面试官开玩笑说没关系我就是随便问问)
  6. 说说你如何理解Flutter中的Widget(说了说Widget和Element的关系,提到了Flutter中的三棵树,以及渲染的流程,从源码方面解读了一下,源码分析地比较好,得到面试官的肯定)

然后提起我目前是大二,说看看我基础,问我在学校学过的专业课有哪些。答:有操作系统,数据库,数据结构。然后就开始拷打课程内容

  1. 说说数据库的索引是如何实现的(使用B+树实现,详细说了说B+树的原理和性质)
  2. 什么是用户态和内核态?
  3. IO操作会使CPU陷入内核吗?为什么IO操作要设计成系统调用的形式?(会,为什么要设计成系统调用答了三点:系统安全考量、统一资源管理、抽象思想,减少程序员针对不同品牌的IO设备繁多的适配工作)
  4. 能说说Dart的Isolate是什么?(对比了一下与传统线程的区别)
  5. Dart的异步任务比如Future和async以及await是如何实现的?(说了说事件循环)
  6. 追问:所以说在Dart的单Isolate中,没有真正的异步是吗?(这个问题有点刁钻,我答的是:不完全是,比如网络请求,Dart内部会把网络请求本身交给Dart VM的线程来执行,由C/C++侧管理,当请求完成后,C/C++侧会将回调加入到相应的Isolate的事件循环中。所以对于Dart而言没有真正异步,因为执行事件队列中的任务是同步的;但是对于整个Dart VM而言,是真正的异步操作)
  7. 大部分人都是大三来实习,为什么选择大二就来实习?
  8. 能实习多久?(两到三月)
  9. 有什么想问我的吗?(未来学习的规划和方向,面试官说了很多,也了解到这位面试官是Android大佬,Android刚出来的时候就开始搞安卓开发了;又问了问实习相关的事宜)

面完已经晚上九点多了,说好的是半个小时,结果面了一个半小时((,他说他还有一个会要开,告诉我明天给我出结果。晚上12点看一面过了。

二面

一面过了四天后就发复试通知了,两天后面试。

二面面试官也很和蔼,全程脸上挂满微笑,问到我不会的问题还会坏笑一下~~(我嘞个~~

上来面试官先进行了自我介绍

  1. 然后让我自我介绍
  2. 算法题:字符串的括号匹配问题,用栈解决,秒了
  3. 算法题:力扣上的打家劫舍II(圆形住户,收尾相连)(动态规划只写出来了打家劫舍I(线形住户)的代码。面试官看没写出来,首先肯定了我的现有代码对线形住户是对的,然后提示了一下,瞬间明白,去头去尾分别算一次,求最大值即可)
  4. 智力题:两根绳子,长度相同,粗细均匀各不相同,每根绳子的粗细均匀程度未知,不同粗细处的燃烧速度不一样,但已知这两根绳子的燃烧时间都是60s,如何用这两根绳子精确测量出15s的时间?
  5. 项目拷打,问某个项目中的视频帧处应该如何优化?图片上传如何优化?如何优化课表的缓存策略?
  6. SSO单点登录的流程
  7. 说说Flutter中的三棵树,以及GlobalKey的实现原理(早上刚读过源码,源码中的变量名叫啥都记得,面试官评价:不错啊,了解的很细致,看得出来仔细研究过的)
  8. Dart中的const构造函数为什么比非const构造函数具有更好的性能?
  9. Flutter的ListView.builder性能为何比直接使用构造函数好?
  10. ListView还有哪些优化手段(这里记混了,答成了PrototypeChildDelegate)
  11. Flutter中当用户滑动ListView时,内部的事件处理和组件缓存是如何进行的?(这个当时是真不会,于是给面试官说这个我没了解过,但是我了解过Android原生中的RecyclerView的相关机制,然后面试官说,这俩其实差不多的,就让我说说RecyclerView,于是开始长篇大论,给他分析源码,讲了一下事件分发、事件冲突的处理以及RecyclerView内部的缓存策略和如何自定义缓存等等,评价:真不错啊,这么细)
  12. 让我问他问题,问了问平时开发的时候,前后端是如何协调的

面完时是中午12点,时长两个小时,感觉面试官挺满意的,有一种能过的预感。下午四点看官网,二面也过了。

HR面

最后一轮了,离成功最近的时候是最紧张的

HR是个小姐姐,问的都是非技术问题,比如平时身体健康状况怎么样,能否适应广州的环境(她说以后正式工作多半在广州),还问了问未来的规划什么的。最后让我问她一个问题,结束。

时长刚好半个小时,个人感觉,HR面的目的是为了看你的情况适不适合腾讯吧,表现得像个正常人,回答的时候以公司利益为主就好(虽然感觉实习也没啥)。

后续流程

等得我很焦灼,25号HR才来加我好友,通知我面试通过,前前后后等了一周,还以为挂在了最后一关。随后26号云证,27号接收offer。

收获

不得不说,面试一次还是有很多收获的,学到了很多面试技巧

首先是简历方面,在简历里面写的东西都有可能被面试官闻到,所以在准备面试的时候需要根据你简历上面涉及到的技术点进行准备,笔者是自己当自己面试官,问自己这个功能怎么实现的?用了什么技术?这个技术或者涉及到的框架是什么?其中有使用到什么设计模式吗?还有什么可以优化的地方?

面试官提问的逻辑是很发散的,会根据你每次回答中的关键词来决定下一个问题问什么,我们也可以反向利用这一点,在回答的时候尽量多提及自己熟悉的关键词,这样就能提高下一个问题问到我们会的内容的概率。

然后就是八股,这个要根据面试的岗位来进行准备,一般来说,这方面问题都是基础性的东西,例如Java锁机制,线程池如何实现的,或者让你谈谈某个框架的实现原理等等问题。还有一些技术部门通用的问题,例如经典的TCP三次握手四次挥手以及操作系统的进程间通信、同步等等,这类问题是所有技术部门面试都可能会出现的高频问题,也需要细细准备。

还有就是面试能不能过还是需要一些运气的,像我这种前一天刚读完源码第二天就精准问到的概率还是有点小的。没面上的小伙伴也不用灰心,或许你就是差那一点点运气!

大概就是这些,我是6.6投的简历,这个时候其实已经很晚了,很多暑期实习的简历投递3-5月都已经完成,已经招了大部分人了。之所以选择在这个时间点投递,是因为先前都没有岗位要大二学生,6月这个不仅有内推链接(是在我们学校的腾讯校招群里看到的),虽然不知道为什么这个节点了还能有内推,而且还招大二学生,并且还是我擅长的Android岗位,天时地利人和了属于是。

一开始我也知道现在大二就出去实习有点儿太早了,所以其实是抱着试一试的心态去做的,纯想看看面试究竟是怎么样的,压根就没有通过面试的期待,没想到居然真给我过了。

#腾讯2025实习生招聘##wxg##腾讯##面经##面试#
全部评论

相关推荐

写不来代码的小黑:这么小的城市能有做it的公司也不容易
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务