面经-腾讯篇

打个岔:欢迎佬前往这条帖子下 https://www.nowcoder.com/feed/main/detail/8ee8e7d5577f4d9ebd9ad72367b14f73?sourceSSR=users,给点建议。
打岔完毕。

#面试问题记录# 面了好几次腾讯,感觉由于我是java选手,腾讯的第一轮技术面试往往会问你会不会C++/go,八股也偏向于问计网、系统(特别是线程、携程、进程这块),而且会深挖,但把小林code好好看看应该也没啥大问题。

去年腾讯暑期实习时,腾讯会一直捞,所以刷了好几次面经(都是面后凭记忆写的)
4.11 腾讯 一面
三道题(30 min + 解题思路 20min)
1. 在非递减数组中找 target 的起始和结束位置
2. 层次遍历
3. 最长严格递增子序列

问项目
拷打项目高可用,
秒杀时如何确保redis和mysql数据一致
秒杀完,发异步消息时,rabbitmq宕机了怎么办?

八股
进程线程、系统调用的具体过程
对比 B+ 树 和 二叉搜索树
你的项目中用到了什么索引

4月17 腾讯视频 一面
第一题,翻转单链表,20分钟解决,面试官问能不能只用一次循环就解决,没想出来
第二题,二叉树中序遍历,非递归版,没写出来,但讲了思路
第三题,上楼梯,每次一步或两步,经典递归或动态规划

mysql 相关
有哪些索引?
事务的隔离级别

项目相关
请求特别多时,都打到redis上,redis怎么扛得住?   我提到限流之类的,最后面试官给出的答案,redis集群

4月22 腾讯视频 二面
上来先问了十几分钟科研相关
c++相关:
指针和引用?   
数据库相关:
一张表 有 a、b、c 三个字段,select b,c from table where a = 1; 问会怎么加锁?
一个 mysql 请求大概要多长时间?

负载均衡,一致性哈希?

秋招的时候腾讯广告部门捞了我一次,但答得不是很好(所以就忘记写面经了)

春招时又被捞了

4月17 腾讯视频 一面
算法题
从0实现堆排序(需要太多时间,后面换题了)
快排
单链表判断环
超过半数的数字(摩尔投票)

c++还记得吗?
虚拟内存,为什么要用虚拟内存?虚拟内存中包含哪些部分
进程和线程,进程通信方式?(套接字,共享内存,管道)管道怎么实现的?共享内存怎么实现的?
java有携程吗?java里多线程并发怎么实现?(锁,乐观,悲观锁)

网络编程了解过吗?代码大致怎么写?
磁盘文件到用户有几个缓冲区?
I/O多路复用?

tcp第三次握手丢失了会怎样?客户端还能向服务器发请求吗?(能,但服务端回应的还是第二次握手)
如果很多客户端都不发第三次握手很怎么样?(提示:服务端有最大连接数,达到最大连接数会拒绝吗)
四次挥手time_close,wait_close?

4月24 腾讯云 拷打1h40min
由于实习用到了kafka,问了很多kafka的八股
分布式id怎么实现?
问优先队列怎么实现?
问延迟队列怎么实现?美团怎实现的?
问死信队列?
kafka为什么高效?
RabbitMQ怎么实现延迟队列?

concurrentHashMap?
Spring 的AOP原理?(回答JDK/CGlib动态代理)追问动态代理的底层?(反射)追问反射的底层?
redis事务?
redis持久化?AOF重写?
redis过期删除策略?
Zset底层原理?
事务的隔离级别?每个隔离级别解决什么问题?
深度分页问题:sql怎么实现分页查找?(limit)深度分页问题以及怎么解决?
sql执行的流程?
RateLimiter令牌桶低层原理?
MyBatis的缓存了解吗?
线程,携程区别?什么时候用线程什么时候用携程?
Linux虚拟内存?
键入网址到网页显示,期间发生了什么?
一台机器作为客户端,但其上有大量的tcp连接time wait是什么原因?

代码题:大于目标值的最短子数组
场景题给你两个文件,每个文件包含上亿的url(最长64byte),让你找出重复的?
问你性格怎么样?

4月27 腾讯云 二面
主要问实习
算法: 长度为n的数组,要求数组和为k的倍数,且数组的最大值最小
全部评论
腾讯云二面出结果了吗?
点赞 回复 分享
发布于 05-07 14:41 辽宁
老哥有三面面经吗
点赞 回复 分享
发布于 05-07 13:15 四川
30min手撕了3道题?
点赞 回复 分享
发布于 05-06 23:55 广东

相关推荐

05-11 22:04
门头沟学院 Java
前面就是基本上是八股盛宴,然后看你说什么词触发他被动然后追着问。复盘的时候确实发现底层网络和操作系统问得挺细的,可能客户端偏底层?总体来说面得挺舒服的,面试官也很友善,一个小时很快就过去了。提问环节:1. 自我介绍2. 面试官强调这是客户端面试 说明一下base地,进来要转cpp3. 了解cpp吗?不了解,对于两者的理解我认为最大的不同在于内存管理,cpp可以灵活地控制内存,提高程序运行效率。Java通过jvm来进行内存管理,好处是系统自动分配内存和垃圾回收,安全简单,缺点就是不能更颗粒度地操作内存。还有就是cpp的学习曲线比较陡峭,其他的就不太清楚了。4. Java集合有哪几种?ArrayList,Linkedlist,HashSet,hashmap,ConcurrentHashMap5. ArrayList和LinkedList有什么区别?底层实现,读写应用场景,6. 具体到每一个节点上,他们两在内存占用上哪个更优?ArrayList底层是连续内存的动态数组,利用了计算机的局部最优特性,所以更优一些7. 什么是反射?通过类名在程序运行时构建类实例,操作类方法,类字段,增强编码的灵活性和解耦,但是也存在着安全的隐患8. JVM是如何反射构建类对象的?通过方法区中存放的类信息,字段和方法,去构建类对象实例9. 讲一下类加载机制,描述一下类是如何被加载的?加载-验证-准备-解析-初始化-使用,然后具体内容10. 类加载的时候,它对静态成员变量和非静态成员变量的处理具体有什么不同?静态放在方法区,局部变量放在堆,基本数据类型放在栈帧11. 讲一下CAS是什么?12. 有没有遇到ABA问题?13. Mysql底层存储的数据结构是什么?14. 平时写sql查询语句时需要注意什么,对查询进行优化,结合一个例子说明?15. 你的主表的主键ID是增长是+1吗?还是怎么样?16. 推荐使用顺序递增索引,说了一下顺序递增和UID的优缺点17. 有遇到并发插入,出现ID空洞的情况吗?没有,加行锁了18. 你刚刚说了行锁是吧,那Mysql具体有哪些锁?行锁、表锁、全局锁,间隙锁防止幻读19. 什么是幻读?20. 我看你有提到计算机网络,介绍一下UDP和TCP差异21. 如果在客户端建立TCP的话,一般会怎么做?(愣了一下)一般是操作系统底层通过协议栈来进行网络连接,通过JavaAPI来操作Socket层来进行网络连接通信22. 你有用过java的Socket相关的这些,手动去建立连接的API吗?用过简单的http网络请求连接,还有使用Java的网络应用框架Netty来进行网络通信,可以自定义消息序列方式和序列头等信息23. 你刚才提到操作系统负责网络连接,你知道操作系统提供的TCP的API是什么吗?不太清楚,没有在操作系统层面上实现过这种网络通信的调用24. 解释一下TCP和HTTP这两个专有名词?25. HTTP一定要建立在TCP上吗?还是说UDP也可以?26. 你刚刚说了QUIC协议,关于QUIC你知道哪些呢?27. 既然你提到了中间密钥,那它建立连接的大概过程是什么?28. TCP协议的握手是干什么的,为什么要有握手的过程?29. 它如何保证不接收过去的数据呢?30. 说了一个乱七八糟的问题,什么什么API和你刚刚说的握手有什么关系?(没听懂)31. 那我换一个问法,你知道半连接队列吧?那它在握手的哪一步把链接从半连接移到全连接队列?32. 如果第三次握手的ACK,客户端没收到,会怎么样?33. OK网络相关的就,嗯(话锋一转),HTTP头的大概结构你清不清楚?34. 问你两个操作系统相关的问题,kill命令有用过吗?(玛德没听清,没回答出来)结束一个进程一般用shutdown或者close函数35. 嗯我不是说在你程序内,那你有个jar包跑起来了,你怎么把它删掉?一般在服务器上用docker部署多个容器,用docker stop来停掉程序36. 那你知道在Linux平台,进程退出的时候会有几种信号,你知道几种它们有什么不同?不清楚具体哪个信号,说了个shutdown和shutdownNowPS:GPT说有6种,对应不同触发的方式:SIGHUP是终端关闭挂起,SIGNT是Ctrl键+c优雅退出,SIGQUIT是Ctrl键+\用于调试,SIGKILL是强制终止进程,SIGTERM是kill <PID>用来杀死进程优雅终止,SIGTOP是暂停进程可恢复37. OK,那你对Window系统相关的知识了解吗?不太清楚,只用过一些简单命令行做题:翻转数字?(“123456”输出“654321”)聊天环节:1. 因为我们这边是客户端开发,你这个经验都是服务端的,有做过安卓或者是其他平台的开发吗?做过一个功能比较全的C#全栈作业2. 那你愿意找客户端吗?(灵魂拷问)(流汗黄豆)可以考虑反问:3. 腾讯对于转语言或者转岗位的同学会有过渡的培训吗?会有,但也看部门,主要是看你有没有意愿去做这个方向的工作4. 元宝客户端具体是做PC端还是移动端?都有,具体看你兴趣就行(😥)5. 那具体的业务是干什么的?业务就是元宝客户端,你在各个平台都能搜到的吧,这就是我们的业务(😥这不没说吗?)6. 那客户端主要的工作是集中在哪些方面?用户使用界面?类似前端JS的逻辑处理?都会做,不光是UI展示,还有用户交互层面,也有数据要处理。虽说是客户端,但是整个数据的上下链路都是要做的7. 腾讯对实习生会不会苛刻一些?主要看不同部门的要求,我们这边还好,更注重你的基础是否扎实,解决问题的能力。
点赞 评论 收藏
分享
05-11 10:01
已编辑
未填写教育信息 golang
我们学go的都是香香甜甜的:已开源准备实习期间全部面经和实习准备的内容
点赞 评论 收藏
分享
评论
16
76
分享

创作者周榜

更多
牛客网
牛客企业服务