腾讯TME QQ音乐暑期实习一面

腾讯 · AI算法工程师 · 一面 · 湖北 · 2026-06

《面试题目》

  1. 自我介绍
  2. 实习经历拷打
  3. 实习收获
  4. 谈一下Java中对象的理解
  5. 对象的组成
  6. 介绍一下synchronized关键字
  7. 7介绍一下synchronized关键字的锁升级过程
  8. 介绍一下java的内存模型
  9. 介绍一下jvm的组成
  10. 介绍一下java的垃圾回收机制
  11. 哪些对象是GC root对象
  12. TCP三次握手过程
  13. 为什么不能改为两次
  14. 介绍TCP四次挥手
  15. 为什么要四次
  16. 为什么要等待2MSL才关闭,2MSL是由什么决定的
  17. 哪个部分是TIME_WAIT哪个是CLOSE_WAIT
  18. 如果给你两个库,A是线上正在用的,把A库迁往B库,流程和注意点是什么

《参考解析》

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

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

  3. Java并发:Java并发:synchronized关键字(偏向锁→轻量级锁→重量级锁升级);ReentrantLock(可重入、可中断、公平锁);volatile(内存可见性+禁止指令重排,不保证原子性);CAS(Compare-And-Swap,无锁乐观并发);ThreadLocal(线程本地变量,WeakReference,注意内存泄漏)。线程池核心参数:corePoolSize/maximumPoolSize/keepAliveTime/workQueue/handler。