面灵AI

熙牛医疗 Java 开发实习生一面

轮次
一面
时间
2026-08
来源
牛客网

《面试题目》

  1. 第一段和第二段实习为什么离职?
  2. 实习做了哪些内容和有挑战的需求?
  3. 线程如何实现,线程池有哪些参数和工作原理?
  4. 真实业务中使用线程池解决过什么问题?
  5. 了解哪些锁,锁的可重入性是什么?
  6. Spring 如何解决循环依赖?
  7. 如何定位和解决慢 SQL?
  8. HashMap 在 JDK 1.7 到 1.8 做了哪些优化?为什么?
  9. MQ 如何保证幂等和防止重复消费?
  10. 如何处理大对象和 OOM?

《参考解析》

  1. 线程池:核心线程数、最大线程数、空闲存活时间、队列和拒绝策略共同决定吞吐与稳定性。业务代码要监控队列长度、活跃线程和任务耗时,避免无界队列掩盖过载。
  2. 锁与幂等:可重入锁允许同一线程重复获得同一把锁。分布式场景要使用带租期和持有者校验的锁或数据库条件更新;MQ 消费以业务唯一键、去重表或幂等状态机防止重复处理。
  3. 慢 SQL 与 OOM:通过慢查询日志、执行计划和线上指标定位索引、回表或排序问题。OOM 排查需保留堆转储并分析大对象、缓存和线程栈增长,修复生命周期而非简单增大堆。
  4. HashMap 变化:JDK 8 使用数组加链表/红黑树,减少高冲突桶的最坏查询复杂度;扩容时按高位拆分,降低重新计算成本。