面灵AI

Java后端AI面试复盘

轮次
AI面试
时间
2026-09
来源
牛客网

《面试题目》

  1. HashMap 的底层原理是什么?
  2. Java 线程池的核心参数有哪些?
  3. 哪些场景会导致 MySQL 索引失效?
  4. Redis 缓存穿透是什么?如何处理?
  5. 请介绍简历中的项目经历。

《参考解析》

  1. HashMap:JDK 8 的 HashMap 由数组、链表和红黑树组成。键经哈希扰动后定位桶,发生冲突时在桶内比较;链表达到阈值且数组容量足够时会树化,负载因子达到阈值后扩容。
  2. 线程池参数:核心参数包括核心线程数、最大线程数、空闲存活时间、工作队列、线程工厂和拒绝策略。配置时还要同时考虑任务是 CPU 密集还是 I/O 密集,以及下游连接池和限流能力。
  3. 索引失效:常见原因包括对索引列做函数运算、隐式类型转换、联合索引未满足最左前缀、前导模糊匹配,以及范围条件后续列无法继续缩小扫描范围。应结合执行计划和实际扫描行数判断,不能只看是否出现索引名。
  4. 缓存穿透:请求持续查询不存在的数据,导致每次都穿过缓存访问数据库。可以校验明显非法参数、缓存短期空值或使用布隆过滤器;同时要防止恶意请求集中击穿数据库容量。