26届腾讯QQ暑期实习后台开发一面面经

#腾讯# #腾讯求职进展汇总# #腾讯2025实习生招聘# #计算机# #Java#
贴主会更新每一个面试的面经,可以点进贴主主页查看其他面经(都会写的详细),可以关注我获得最新面经通知。
总结基本纯八股,基本没有问项目,算法两道
贴主的第一次面试(3.11图里是3.10是因为延后了一天),全程十分的紧张。
首先面试官让自我介绍,应该是想从我的的介绍里引出问题,可是过于紧张只介绍了自己目前的大学大三的一名软件工程学生,没有谈到任何项目和获奖经历,面试官听完我讲完愣了一下,才开始转入面试
1.现在主推语言(先说大二Cpp,大三做项目转Java)
2.介绍一下java中的集合(先紧张卡壳了一下,然后讲了Collection和Map两方面,讲到Map的时候面试官继续发问)
3.说到HashMap,他是线程安全的吗?(回答不是,然后说有CurrentHashMap有线程安全)
4.CurrentHashMap怎么保证线程安全(回答使用了分段锁,介绍了分段锁机制)
5.那除了你刚刚说的CurrentHashMap还有什么方法保证HashMap线程安全(又答了个synchronizedMap,也是通过锁的机制保证线程安全)
6.那还有使得HashMap线程安全的其他方法吗(没答上来)
7.那CurrentHashMap相比于synchronizedMap,通过不同的加锁方式,哪一个性能更好(这我不知道也没答上来)
8.HashMap怎么解决冲突(细说了拉链法解决哈希冲突,提到了哈希表变大之后会变成红黑树存储)
9.红黑树应用于哈希表性能好在哪里?(我从时间复杂度上解释O(logn)优于O(n))
10.还有其他的解决哈希冲突的方式吗?(想起来有线性探测法,但是说不出详细的)
11.查看简历后询问mysql包含哪些索引(组件索引,普通索引,唯一索引,全文索引,然后说了下索引工作方式)
12.mysql常见存储引擎(InnoDB,介绍了innoDB的机制)
13.InnoDB的底层数据结构(B+树,说了B+树的结构)
14.为什么不用B树呢?(先说B+树相对于B树的优点,其中提到使用B+树磁盘读写性能更高)
15.怎么使得读写性能更高?(从B+树存储和查找原理入手,B+树叶子结点存储数据,非叶子结点存储索引,从而使得每个节点存储更多索引信息,降低树的高度,B+树进行查找路径更短,所以磁盘读写操作更少)
16.详细讲讲为什么范围查找性能更好?(从B+树节点有序相连入手,叶子结点通过指针相连形成有序链表,使得查询一旦找到要查的的范围起始点,就可以沿着链表顺序快速访问,而且B+树结构非常适合二分查找,相对的时间复杂度会更低)
17.说B+树的时候提到了Redis也应用了有类似于B+树优势的数据结构,面试官直接抓住发问Redis使用情况(讲了项目里对Redis的使用)
18.Redis常用的数据结构(String项目里用来存储用户信息,set项目里使用来管理帖子赞踩以及并集管理共同关注,还有list和sorted set)
19.那Redis里的Hash你有用过吗?(又是Hash,这部分我背的不熟,老实交代用的不熟练)
20.Sorted Set的底层数据机构是什么?(先想起来有一个跳表,面试关追问还有吗,想了很久说压缩链表,并说只知道名字,不知道具体实现,因为我前面说到的都细致解释了)
21.问Redis持久化机制(回答两种,RDB持久化和AOF持久化)
22.马上询问RDB底层的运行原理和具体执行(说了自动配置和手动配置,提到BGSAVE)
23.追问BGSAVE具体执行(老实交代只记得这个命令,对底层执行还不清楚)
24.开始问计网,TCP和UDP(细说了TCP的三次握手和四次挥手和UDP传输快但是不可靠)
25.TCP的头部结构说一下(开始按顺序说TCP的头部存储的不同参数)
26.那头部里的校验和占多少位?(16位)
27.http中403错误码什么含义?(禁止访问,服务器拒绝客户端发送的请求,权限或者资源问题)
手撕算法,面试官调试腾讯会议上面的ide,调试了五分钟没搞好,让我自己直接在自己的ide上写
十五分钟内完成快速排序和二叉树中序遍历
用c++写,二叉树写的时候被要求不能用递归要用迭代法
算法都不难,但是因为没有腾讯会议上的输入样例提示,面试官也没说具体的输入样例
核心逻辑很快就写好了,但是样例的输入尤其是二叉树那里一时没处理好(向输入前序然后输出后序来着)
到时候面试官上来说因为没有在腾讯会议上写,就不要求运行写输入样例了,要求我细说两个算法的逻辑即可
28.快速排序——经典的分治算法,寻找一个基准数,将小于他的排左边,大于他的排在右边,然后递归处理左右两边
29.快排稳定吗?(不稳定)
30.细说快排不稳定的原因(依赖于交换操作,可能导致数值相等的元素排序后相对位置发生变化)
31.说几个稳定的排序算法(冒泡排序、插入排序、归并排序)
32.二叉树中序遍历——利用栈模拟递归过程,首先将根节点以及其左子节点一次入栈知道左节点为空,然后弹出栈顶节点,再将右子节点作为新的根节点,重复这个过程
到时间了,让我反问,不知道说什么,就问面试官,这是我的第一次面试,您认为我的表现如何,面试官官方回答:”我只是如实的记录你的面试表现然后把档案给上面的leader进行横向评估,这不由我说了算而由leader说了算。“
也不知道这样反问稳不稳妥,说出去的时候其实就有点后悔了,然后向面试官道谢,面试结束。
全部评论
说说我自己对这些八股的理解,有问题可以一起讨论: 1.CurrentHashMap,面试官应该是想让你回答 JDK1.7 和 JDK1.8 的实现区别,为什么 1.8 的更好?1.7 是分段锁,但是锁的粒度还是比较大。所以 1.8 做了改进,如果目标位置上的节点为 null,就先 CAS 把节点直接放进去,避免加锁。如果目标位置存在节点,就使用 synchronized 对“头节点”加锁,接下来读写链表或红黑树就可以保证线程安全了,因为只有一个线程能访问该链表或红黑树。总结就是 CAS + synchronized 更小的锁粒度 + 避免创建 Segment 节约内存 2.哈希冲突的解决方案。开放寻址法,在数组中找到下一个位置放入元素,常见的有线性探测、二次探测、双重哈希。在 ThreadLocal 中,就采用了线性探测法;拉链法,典型的就是 hashmap;扩容,hashmap 和 ThreadLocal 都有通过扩容的方式解决哈希冲突,会设置一个负载因子,比如 0.75,达到该值就扩容。一般就是「扩容+拉链法」解决,拉链法可以解决哈希冲突问题,但哈希冲突多了性能就差了,通过适当地扩容可以降低因哈希冲突过多导致的性能问题,但不限制地扩容又浪费内存。所以要在内存和性能之间做权衡
28 回复 分享
发布于 2025-03-12 16:01 浙江
.那还有使得HashMap线程安全的其他方法吗?答:你别再线程不安全的情况使用它
22 回复 分享
发布于 2025-03-12 08:09 湖北
肿么全是收藏没有点赞和评论啊
6 回复 分享
发布于 2025-03-11 21:47 吉林
这个问题也太多了吧!佬很厉害,稳了
2 回复 分享
发布于 2025-03-12 17:16 陕西
看起来是稳了
2 回复 分享
发布于 2025-03-12 10:09 江西
2 回复 分享
发布于 2025-03-12 05:00 北京
佬过了吗?
1 回复 分享
发布于 2025-03-13 01:37 广东
我擦,世另我,我的反问跟你一样,面试官也是这么回答的,我感觉自己问的有点呆😳
1 回复 分享
发布于 2025-03-12 17:45 河南
支持博主,加油加油
1 回复 分享
发布于 2025-03-12 01:01 江西
mark
点赞 回复 分享
发布于 2025-07-26 01:08 江苏
感觉问到TCP头部和具体多少字节就有点不对劲了,像是故意刁难
点赞 回复 分享
发布于 2025-04-16 15:50 陕西
m
点赞 回复 分享
发布于 2025-04-12 02:31 河北
mark 中间件八股
点赞 回复 分享
发布于 2025-04-10 11:37 湖南
mark
点赞 回复 分享
发布于 2025-03-20 11:37 广东
mark
点赞 回复 分享
发布于 2025-03-13 22:12 湖北
算法题有点难
点赞 回复 分享
发布于 2025-03-13 18:02 四川
接好运
点赞 回复 分享
发布于 2025-03-13 16:56 广东
答得这么好都挂。。。。。。
点赞 回复 分享
发布于 2025-03-13 14:32 广东
我们是商品库存团队,商品技术是淘天集团电商的基础域,致力于打造贯穿商家端与消费者端的商品技术能力。我们的工作涵盖商品属性挖掘、标准化建设与运营、AI智能应用、商品与库存架构设计等多个领域,旨在为淘天电商平台提供坚实的技术支撑和创新的产品能力。 岗位职责: 负责商品与库存交易链路中的模型设计、架构规划及稳定性保障,确保系统高效、可靠地运行。 构建高质量的商品数据体系,推动标准商品库的建设,提升商品数据的准确性与一致性。 优化商品运营流程,提升商品的复用性和流通性,实现商品全生命周期管理的灵活化与智能化。 推动商品消费场景的智慧化升级,构建商品的数字化与结构化体系,赋能业务决策与用户体验提升。 结合AI技术,探索并落地商品智能化应用场景,推动技术创新在业务中的深度应用。 岗位要求: 学历背景: 本科及以上学历,计算机、软件等相关专业。 技术能力: 熟练掌握Java语言,具备扎实的编程功底,熟悉Spring Boot等主流Java开发框架。 熟悉常用的数据结构与算法,能够高效解决复杂问题。 对分布式系统架构有深入理解,熟悉缓存、消息队列等开源中间件的应用与优化。 综合素养: 具备独立分析与解决问题的能力,善于沟通协作,拥有良好的逻辑思维与学习能力。 勤于思考,乐于接受挑战,能够在高并发、高流量场景下提出创新性解决方案。 加分项: 有互联网公司相关实习经验或项目开发经历者优先。 在国际顶级会议、期刊发表过论文,或在权威学术竞赛中获奖者优先。 在这里,你将获得: 快速掌握电商领域的核心业务知识,深入了解商品与库存系统的运作机制。 面对高并发、大流量场景(如大促、秒杀等)、缓存优化、热点处理等技术挑战,积累丰富的实战经验。 在一个充满活力与创新的团队中快速成长,持续提升个人技术能力与职业竞争力。 超高的转正机会 有意向的同学请私信或发送简历到yangguangsheng.ygs@taobao.com 期待你的加入
点赞 回复 分享
发布于 2025-03-13 14:21 浙江
这个tcp头部字段感觉好难
点赞 回复 分享
发布于 2025-03-13 13:28 上海

相关推荐

04-01 08:53
已编辑
门头沟学院 Java
1. 面试官介绍:QQ - 频道业务,社区产品,后台开发 && AI 开发;闲聊 QQ 产品发展史2. 自我介绍3. Redisson 分布式锁底层实现,对比红锁4. 锁误删什么情况会发生、怎么解决锁误删5. 锁续约怎么实现,底层原理6. AI 推荐后台采用 WebSocket 实时推送怎么实现的,为什么采用 WebSocket,为什么不采用长 HTTP 连接或其他的 RPC?7. WebSocket 和普通 HTTP 的区别,从原理角度考虑8. OAuth2 的原理,以及对比 JWT、Session 的区别9. 重定向是 304 吗?为什么不是 401?10. 访问一个网站 404 了,怎么定位这个问题?11. 一个 HTTP 请求,怎么走到前端的?12. 通过 goroutine 和 recover 实现异步操作日志是怎么实现的?为什么这样实现?13. 如果使用 Kafka 异步操作写库,写的时机是什么时候?是这些操作完了再写还是先写再操作?14. 异步不能保证审计不丢失,怎么处理?15. 怎么保证消息不丢失?16. 先写 Kafka,再执行业务操作,还是先执行业务再写 Kafka ?17. 如果写 MQ 失败,会不会堵塞业务,此时怎么处理?怎么保证服务高可用,同时保证审计的完整性?18. 审计的ID放在哪里?失败了怎么处理?给出一个方案能保证正常审计,包括写 Kafka 失败了怎么办?写完 Kafka 后续执行失败了怎么办?19. 定位审计是一个强约束还是非强约束,若是关键路径则不能绕过它,它失败则后续都失败,若不是强约束则不能作为审计,所以怎么样才能做到审计?20. 怎么保证审计日志写库的强一致性也保证业务的正常流程?假设用 MQ 而 MQ 挂了怎么办?因为写 MQ 也可能存在一定的失败,若 MQ 挂了业务也就挂了,这种极端情况怎么处理?全程无手撕,项目深挖+场景深挖,挖到不会为止许愿二面
查看19道真题和解析
点赞 评论 收藏
分享
评论
152
486
分享

创作者周榜

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