广州华软科技 Java开发一面面经

广州华软科技发展有限公司 · Java开发 · 一面 · 广州 · 2026-03

《面试题目》

  1. 自我介绍
  2. 项目经验:是否为教程项目,是否有落地经验,负责的具体模块及实现细节
  3. 前端技术:Vue2与Vue3的区别
  4. 个人意向:对实习的期望
  5. 网络协议:协议的基本概念
  6. 缓存技术:缓存穿透的解决方案、布隆过滤器的原理、哈希的概念及应用场景
  7. 基础能力:校内课程学习情况
  8. 行业看法:AI对程序员的冲击与理解
  9. 数据库:MySQL存储引擎、聚簇索引定义、主键生成策略(自增的优缺点)、项目中的ID设计
  10. 数据结构:左旋的概念及其用途
  11. 场景题:淘宝双十一秒杀与12306抢票的难度对比及原因
  12. 反问环节:业务性质及对AI的态度

《参考解析》

  • 缓存穿透与布隆过滤器:缓存穿透指查询不存在的数据导致请求压垮DB。解决方案包括缓存空对象或使用布隆过滤器。布隆过滤器利用位数组和多个哈希函数快速判断元素是否存在,具有空间高效但存在误判(非删除)的特点。
  • MySQL聚簇索引:聚簇索引将数据行存放在索引树的叶子节点中,一张表只能有一个,通常是主键。其优势是范围查询和主键查找速度极快,但也带来了插入性能开销(若主键非递增会导致页分裂)。
  • 主键生成策略:自增主键易于存储但由于存在全局锁可能成为瓶颈,且在分库分表时易冲突。替代方案包括UUID(占用空间大、无序)、雪花算法(分布式生成、趋势递增)等。
  • 左旋(AVL/红黑树):左旋是二叉搜索树进行平衡操作的一种方式,通过将节点右子节点提升为父节点,降低右子树高度,用于维持树的平衡,确保查找复杂度为O(log n)。
  • 高并发场景对比:12306难度更高。核心在于库存强一致性(不能超卖)以及极端的不均匀流量(固定时刻秒杀 vs 12306复杂的余票查询与复杂的车次/座席组合逻辑)。