腾讯金融科技暑期一面凉经(偏基础 + 项目拷打 + 手撕)

腾讯 · Java后端开发 · 一面 · 2026-04

面试题目

一、基础与编程

  1. 自我介绍
  2. 字符串压缩比较:判断两个压缩后的字符串(如2a3b)是否相等(暴力还原 vs 双指针优化)。
  3. Spring Boot版本选择原因(3.0版本兼容性考虑)。
  4. JDK 21的兼容性与商用考量。
  5. Java “一次编写,到处运行”的实现原理及与C++的区别。

二、项目拷打

  1. 令牌桶限流实现原理。
  2. 服务高可用:单机与分布式的差异,单机节点挂掉后的处理机制。
  3. 布隆过滤器的使用场景与原理。
  4. 分布式锁实现(Redis方案)。

三、数据库

  1. 查看表结构的SQL语句。
  2. 索引设计策略:主键、唯一、联合索引的区别。
  3. MySQL事务隔离级别及具体差异。
  4. 读已提交与可重复读的区别,脏读的定义。

四、Linux

  1. 查看目录大小的命令。
  2. 文件权限rwx的含义。

参考解析

  1. 字符串压缩:暴力法需先解码再比较,空间复杂度O(N);双指针法直接在压缩字符串上移动,计算逻辑偏移量并对比字符,空间复杂度可降至O(1)。
  2. Java跨平台:Java通过JVM实现,字节码文件(.class)在不同平台的JVM上解释执行;C++编译为本地机器码,不同OS的指令集架构不同,需重新编译。
  3. 布隆过滤器:利用位数组和多个哈希函数实现。优点是空间利用率高、查询快,缺点是存在误判率,且不支持删除操作。
  4. MySQL隔离级别:读未提交、读已提交、可重复读、串行化。可重复读通过MVCC(多版本并发控制)+ Next-Key Locks避免幻读,而读已提交每次读取都会生成新的ReadView。
  5. Linux权限:r(读/4)、w(写/2)、x(执行/1)。查看目录大小常用命令为 du -sh <目录名>