腾讯wxg软件后台开发一面速挂

腾讯 · 软件开发实习生 · 一面 · 广东 · 2026-05

《面试题目》

自我介绍

两道算法:

  1. 找出现频率前k大, 用了堆做出来,但是可能面试官希望你手写堆,而不是用编程语言自带的实现,这里我不记得实现具体怎么写了,但是我说了大概的思路
  2. 2。链表扭转,从中间分开两边,左右两边的链表都要翻转,最终拼成一个新链表(其实就是反转链表啦),用了栈来做,但是后面面试官问我为啥不用单向链表来做,我说之前有试过,但是好像行不通(以前做过反转链表的题,当时就是想用链表来做,但是后面没解决出来,我就和面试官说了),后面结束面试后回想好像确实单向链表能做,有点后悔那么说了
  3. 实习项目里面哪个地方,做的最有成就感,解决了什么问题,选了什么方案,这个有提前准备,所以自我感觉还行?
  4. 讲讲你的秒杀场景?也有准备过,但是后面面试官新说了一个场景,我也圆过去了
  5. mysql相关(在项目里面穿插来问):事务隔离机制的原理:临建锁…mvcc(说了大概的步骤,记得不是很清楚)
  6. 事务回滚,undolog,
  7. mysql宕机,redolog ,redolog啥时候发生,事务提交前
  8. 操作系统:(这些都看过,但是忘了,,,,)
  9. 讲讲淘汰缓存的一些算法 没答出来
  10. 讲讲虚拟内存 这个答了个大概
  11. tcp三次握手四次挥手
  12. 缺页,物理内存满了,怎么淘汰 也没答上
  13. tcp半连接队列全连接队列 这个没答上
  14. 操作系统堆和栈的区别
  15. java相关(还是最熟悉java)

深拷贝和浅拷贝 8. 怎么实现深拷贝java 9. java的clone方法是怎么样的 10. jvm内存模型中创建一个对象的过程 11. 反问:业务有没有agent相关 答:主要还是电商场景 12. 最后第二天流程就结束了,感觉自己还有很多不足的地方,这些八股都没怎么背(主要是计网和操作系统,java和mysqlh还是相对熟悉的),以为可能会多问项目,但是项目才问了一点点。可能面试官比较看重这些基础知识,虽然算法题都做对了,可能实习的项目不太行,或者横向有很多比我优秀的吧,也没能挺进二面,还是有点遗憾的,其实还是很sad的哈哈哈,俺不会被打倒的。


《参考解析》

  1. 计算机网络:TCP(传输控制协议)是面向连接、可靠的传输协议,提供流量控制和拥塞控制;UDP(用户数据报协议)是无连接、不可靠但速度更快的协议。TCP通过三次握手建立连接(SYN→SYN+ACK→ACK),四次挥手断开(FIN→ACK→FIN→ACK)。

  2. MySQL深度:MySQL InnoDB使用B+树索引,支持ACID事务。关键知识点:聚簇索引(主键索引)叶节点存完整行数据;辅助索引叶节点存主键值(需回表);MVCC通过undo log版本链+ReadView实现多版本并发控制,解决脏读/不可重复读;事务隔离级别从低到高:读未提交→读已提交→可重复读(默认)→串行化。

  3. Redis核心:Redis常用数据结构:String/Hash/List/Set/ZSet。持久化:RDB(定期快照,恢复快,数据可能丢失)和AOF(追加日志,数据安全,文件大)。缓存穿透用布隆过滤器;缓存雪崩加随机过期时间+多级缓存;缓存击穿用互斥锁或逻辑过期。分布式锁用SET key value NX PX + Lua脚本保证原子释放。

  4. JVM与GC:JVM内存模型:堆(对象分配,GC管理)、方法区(类信息、常量池)、虚拟机栈(栈帧/局部变量/操作数栈)、本地方法栈、程序计数器。GC算法:标记-清除(内存碎片)、标记-整理(无碎片,但移动对象)、复制(新生代)。G1按Region划分堆,预测停顿时间。