航旅纵横 Java 一面面经

航旅纵横 · Java开发工程师 · 一面 · 2026-04

面试题目

  1. 做一下自我介绍。
  2. 今年毕业?秋招参加过吗?
  3. 在实习公司主要做了些什么?
  4. 你对 K8s 熟悉吗?
  5. 另一个项目 Minor DB 是自己做的吗?用的是 PG?
  6. PG 跟 MySQL 的区别都有哪些?
  7. 你们现在用的 JDK 版本是多少?
  8. JDK 17 的垃圾回收器用的是 ZGC 吗?
  9. ZGC 跟 CMS 比较大的区别是什么?
  10. 三色标记算法能具体说一说吗?
  11. 年轻代的回收用的什么算法?
  12. 讲一下 volatile 关键字的作用(可见性)。
  13. HashMap 的负载因子是什么概念?如何避免频繁扩容?
  14. 什么是倒排索引?(ES 相关)
  15. 接触过 AI 编程吗?有什么实际案例?
  16. 询问学校

参考解析

  • PG 与 MySQL 区别:PG 是对象关系型数据库,支持更复杂的查询和数据类型(如 JSONB),插件生态丰富,适合复杂业务;MySQL 架构更轻量,读写分离和主从复制机制更成熟,在互联网高并发场景应用广泛。
  • ZGC 与 CMS 区别:CMS 是基于标记-清除算法的低延迟回收器,主要用于老年代;ZGC 是 JDK 11/17 引入的低延迟、可扩展回收器,支持 TB 级堆空间,停顿时间(STW)控制在毫秒级。
  • 三色标记算法:黑色代表已扫描且其引用对象也已扫描;灰色代表自身已扫描但引用对象未扫描完;白色代表未扫描。通过写屏障维护一致性,防止漏标。
  • volatile 可见性:通过内存屏障(Memory Barrier)禁止指令重排序,并强制要求线程从主内存读取变量,并将修改后的变量立即写回主内存,保证多线程环境下变量的可见性。
  • HashMap 负载因子:默认 0.75。通过设置合理的初始容量减少扩容次数;对于已知数据量,可预先设定容量避免扩容触发的重哈希过程(Rehash)。
  • 倒排索引:通过词项(Term)指向包含该词项的文档(Document)列表。ES 利用此结构实现全文搜索,极大地提高了检索效率。