腾讯后台开发 HR与管理线一面

腾讯 · 后台开发 · 一面 · 2026-03

面试题目

基础与自我介绍

  1. 自我介绍
  2. 平常怎么用 AI

Java 多线程

  1. 线程创建过程
  2. 线程生命周期
  3. Java 怎么创建线程
  4. [题T1] 一个类里有普通变量、读方法和自增方法,想办法实现并发安全

网络

  1. 一条 HTTP 请求从 DNS 解析到执行的完整过程

MySQL

  1. redo log、undo log、bin log 的作用
  2. MySQL 为什么要这些日志
  3. [题T2] UPDATE SET t = t + 1 WHERE id = 10; 的完整执行过程
  4. 上面的 SQL 会不会造成索引树分裂

Spring 事务

  1. [题T3] Spring 类中一个方法加上了 @Transactional 注解,在该方法内先调用了类中另一个普通方法,再抛异常,事务会不会回滚?(提示:从动态代理角度思考)

AI 相关

  1. Skills 和 Rules 的区别与联系
  2. 用 Skills 会不会降低 token?为什么
  3. [题T4] 三个 AI 相关名词解释(面试者未能回忆具体词汇)

反问环节

  • 有没有需要改进的地方:八股到实际落地还有距离,还需多练。
  • 部门做什么:人事管理方向。
  • AI 项目重不重要:主要看是否追踪前沿技术,项目不重要,态度重要。

参考解析

T1:并发安全的普通变量读写与自增

  • 自增操作 i++ 是非原子的(读-改-写三步),多线程下存在竞态条件。
  • 方案一:将变量改为 AtomicInteger,使用 incrementAndGet() 保证原子自增。
  • 方案二:对读写方法加 synchronized 关键字,保证互斥访问。
  • 方案三:使用 volatile 保证可见性,但不能保证复合操作原子性,自增仍需配合锁或 CAS。
  • 推荐优先使用 AtomicInteger,性能优于 synchronized

T2:UPDATE t=t+1 WHERE id=10 完整执行过程

  • 执行器通过 InnoDB 引擎定位 id=10 的行,先查 Buffer Pool,未命中则从磁盘加载到 Buffer Pool。
  • 对该行加行锁(X 锁),将旧值写入 undo log(用于回滚和 MVCC)。
  • 修改 Buffer Pool 中的数据页(内存),将变更记录写入 redo log(WAL,保证崩溃恢复)。
  • 事务提交时,redo log 标记 commit,binlog 写入(用于主从同步/数据归档)。
  • 脏页由后台线程异步刷盘,不影响提交速度。
  • 该 SQL 更新的是非索引列 t不会导致索引树分裂;若更新的是索引列且导致页满,才可能触发 B+ 树页分裂。

T3:@Transactional 方法内调同类普通方法再抛异常,事务是否回滚

  • Spring 事务基于 动态代理(JDK 代理或 CGLIB)实现,事务增强加在代理对象上。
  • @Transactional 方法内通过 this.xxx() 调用同类普通方法,走的是原始对象而非代理对象,不会触发事务拦截。
  • 但此题的关键是:@Transactional 注解在外层方法上,事务已经开启;内部普通方法只是普通调用,仍在同一个事务上下文中。
  • 最终抛出异常,事务会回滚(因为异常冒泡到代理层,代理捕获后执行 rollback)。
  • 注意:若内部方法也加了 @Transactional 但通过 this 调用,则内层注解失效,不会开启新事务;但外层事务的回滚不受影响。

Skills 与 Rules(AI Agent 概念)

  • Rules:全局约束/指令,始终生效,影响模型所有输出,类似系统 Prompt 中的强制规则,通常每次都计入 token。
  • Skills:功能模块/工具描述,按需调用,只在相关场景下注入上下文。
  • 使用 Skills 可以减少 token 消耗:不相关的 Skill 描述不会被加载进 context,避免全量 Rules 带来的冗余 token 开销。
  • 核心思想:Rules 是”总是存在”,Skills 是”按需激活”,后者更节省上下文窗口资源。

HTTP 请求完整流程(简要)

  • DNS 解析域名 → 获取 IP → TCP 三次握手建连 → (HTTPS 则 TLS 握手)→ 发送 HTTP 请求报文 → 服务器处理并返回响应 → 浏览器渲染 → TCP 四次挥手(或复用连接)。
  • 重点关注 DNS 缓存层级(本地缓存→OS缓存→递归解析器→权威DNS)和 TLS 握手过程。