腾讯-QQ后台开发一面面经

前情提要

之前腾讯云二面挂了,当天被QQ部门捞了起来。面试官特别像漠叔,开场让我做了个简单的自我介绍,然后直接进入八股文环节。

面试问题回顾

  1. C++多态有哪些?
  2. 我提到了静态多态(函数重载、模板)和动态多态(虚函数、继承)。
  3. C++异常处理?
  4. 我解释了try-catch机制,以及如何通过throw抛出异常。
  5. C++堆栈大小?
  6. 我猜测可能是问堆和栈的内存分配,简单提了一下栈的大小有限,堆可以动态分配。
  7. 用户态和内核态的区别?
  8. 我解释了用户态是应用程序运行的状态,内核态是操作系统核心运行的状态,切换需要系统调用。
  9. 系统调用和函数调用的开销?
  10. 我提到系统调用涉及用户态和内核态的切换,开销比函数调用大。
  11. 如何理解一切皆文件?
  12. 我解释了Linux中设备、管道、套接字等都可以抽象为文件。
  13. 内存泄露是什么,如何查找,如何避免?
  14. 我解释了内存泄露是指分配的内存未被释放,可以通过工具(如Valgrind)查找,并提到使用智能指针避免。
  15. 智能指针的实现?
  16. unique_ptr、shared_ptr和weak_ptr的实现原理。
  17. map为什么用红黑树,好处?
  18. 我解释了红黑树的平衡性保证了查找、插入、删除的时间复杂度为O(log n)。
  19. protocol buffer?
  20. 不知道
  21. SQL注入?
  22. 我解释了SQL注入的原理,并提到如何通过预编译语句防止。
  23. NoSQL?KV存储?
  24. 我提到了Redis和Memcached,但对具体实现不太熟悉
  25. 消息队列?
  26. 我提到了消息队列的作用(解耦、异步、削峰填谷),并简单提了RabbitMQ。
  27. 了解过Kafka吗?
  28. 不熟
  29. HTTP2.0?
  30. 我提到了HTTP2.0的多路复用、头部压缩等特性。

算法题

面试官出了一道题:最长非递减子序列。我用了贪心+二分的思路,并详细解释了原理。这道题其实我之前在山羊算法后端训练营的课程中学过,导师当时讲解了贪心+二分的核心思路,还通过多道真题让我彻底掌握了这种题型的解法。面试时我几乎没怎么思考,直接上手写了出来,面试官也很满意。不得不说,训练营的课程设计真的很贴近大厂面试需求,尤其是算法部分,几乎覆盖了所有常考题型。

反问环节

  1. 个人努力方向?面试官建议我多关注分布式系统和网络编程。
  2. 部门相关?面试官介绍了QQ后台的主要业务和技术栈。
  3. 工作地点?面试官说主要是在深圳。

总结

这次面试整体感觉还不错,虽然有些问题答得不太好,但算法题的表现让我挽回了一些分数。面试官最后告诉我30分钟后转复试,算是过了第一关吧!

其实这次面试能顺利通过,很大程度上得益于我在山羊算法后端训练营的学习经历。训练营的课程不仅覆盖了大厂常考的算法题,还有详细的解题思路和真题训练,像我这次遇到的“最长非递减子序列”就是训练营里反复练习过的题目。训练营还提供模拟面试服务,由大厂在职工程师亲自指导,可以提前熟悉面试流程,找到自己的薄弱点。

#后端##面试中的破防瞬间##C++后端##腾讯2025实习生招聘##腾讯#
全部评论
我怎么不知道我在你训练营学过
5 回复 分享
发布于 03-25 16:01 山东
哥们认认真真看着面经,你打上广告了
2 回复 分享
发布于 03-27 13:20 广东
课程是哪里报的啊同学
点赞 回复 分享
发布于 03-25 14:30 广东
接好运
点赞 回复 分享
发布于 03-25 14:26 广东

相关推荐

隔壁投了之后又被捞起来面了,以下是TimeLine6.10 投递6.12 约面6.17 一面6.26 二面6.27 三面7.1 HR面7.4 Offer一面:全程40min左右1. 自我介绍2. 开篇面试官介绍了一下这次面试的流程3. HashMap和HashTable的区别?4. 接T3,针对HashTable的问题,有没有解决方案?(ConcurrentHashMap)5. 线程和进程的区别?6. 接T5,通信方式上有什么区别?7. MySQL索引结构?8. 接T7,B树和B+树的区别是什么?9. 接T8,为什么说B+树更好做范围查询?10. MySQL事务隔离级别?11. MVCC12. 索引失效的情况都有哪些?13. Redis持久化方案?14. 缓存雪崩、缓存穿透、缓存击穿15. 讲讲TCP的三次握手和四次挥手16. 说说Linux的常用命令?17. 有没有用过Docker?说说Docker的常用命令?有自己构建过Docker镜像吗?18. 项目拷打手撕:快速排序(问了比较时使用<和<=有什么区别)反问:1. 面试官并不是Java方向的,为什么会问Java基础知识?2. 组里技术栈?(Java、Go、PHP都有,看分到哪个组)3. 后续面试流程?(2-3轮技术面+1轮hr)4. 建议?追问:1. 可能会转语言,是否接受?2. 现在在长沙吗?如果面试通过到这边来会不会有什么阻碍或者困难?面完状态10min左右状态变成业务复试二面:全程40min左右,感觉主要是手撕1. 自我介绍2. 有用过MQ对吧,那你说说怎么解决消息重传的?3. 你是怎么做消息幂等性处理的?4. 接T3,如果说Redis的key已经存入了,但是刚好消费者宕机了,怎么办?5. 建立索引的SQL语句是?6. TLS握手过程7. 手撕1:单链表有一个指针指向任意一个节点,怎么删除这个指针指向的节点,如1→2→3→4,传入2,删除2,没有头指针(回答了更改节点值,next设置为next.next,追问怎么删除最后一个节点,不会,换了道题)8. 手撕2:LeetCode199. 二叉树的右视图(写了递归,要求再写一遍非递归)闲聊:1. 什么时候能到岗?2. 是哪里人?3. 为什么会考虑来长沙这边?4. 你觉得你的优点和缺点是什么?5. 手上还有其他offer吗?反问:1. 业务面完30min左右约三面三面:1. 自我介绍2. 拷打项目3. 拷打实习4. 我现在有一个student表,我要对name简历索引,sql语句怎么写?5. 主键索引和普通索引有什么区别?6. 为什么非聚簇索引要回表?7. MySQL隔离级别?8. MySQL主从同步原理?9. binlog日志存的是什么?10. Redis缓存雪崩是个什么概念?怎么解决?11. Redis持久化方式?12. HTTP报文格式?13. HTTP和HTTPS有什么不同?14. TLS握手过程?15. 为什么是非对称加密和对称加密结合使用?能不能只使用一种?16. 面向对象三大特性17. 我现在有一个Java源代码,比如说叫xxx.java,他是如何变成一个二进制文件的能够让机器运行他的?这个中间的过程是怎么样的?18. JVM的作用是什么?19. 进程和线程的区别?20. 有没有了解过协程?跟线程的区别是什么?21. 为什么说协程为什么更轻量?22. 二进制文件加载进内存,他的分布是怎么样的?23. Linux上怎么看机器的负载?24. top命令哪些参数表示负载?25. Linux怎么看cpu的核数?26. Linux怎么查看当前目录占用了多少空间?27. 查看当前服务器建立的tcp连接,用什么命令?28. tcp滑动窗口机制是怎么样的?29. time_wait状态是什么意思?30. 为什么是四次挥手?31. 三次握手是怎么实现的?中间的ACK和SYN是怎么合并的?32. 用过docker吗?怎么做到容器间隔离的?33. 怎么构建docker镜像?34. 有了解AI吗?大模型训练过程是怎么样的?35. 有没有了解过MCP?36. 使用过什么AI工具?手撕:二叉树的层序遍历,要求null值使用*占位反问:1. 面试结果什么时候出面完状态变为HR面HR面闲聊10分钟
面试问题记录
点赞 评论 收藏
分享
评论
8
27
分享

创作者周榜

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