熙牛医疗 Java 开发实习生一面
- 轮次
- 一面
- 时间
- 2026-08
- 来源
- 牛客网
《面试题目》
- 第一段和第二段实习为什么离职?
- 实习做了哪些内容和有挑战的需求?
- 线程如何实现,线程池有哪些参数和工作原理?
- 真实业务中使用线程池解决过什么问题?
- 了解哪些锁,锁的可重入性是什么?
- Spring 如何解决循环依赖?
- 如何定位和解决慢 SQL?
- HashMap 在 JDK 1.7 到 1.8 做了哪些优化?为什么?
- MQ 如何保证幂等和防止重复消费?
- 如何处理大对象和 OOM?
《参考解析》
- 线程池:核心线程数、最大线程数、空闲存活时间、队列和拒绝策略共同决定吞吐与稳定性。业务代码要监控队列长度、活跃线程和任务耗时,避免无界队列掩盖过载。
- 锁与幂等:可重入锁允许同一线程重复获得同一把锁。分布式场景要使用带租期和持有者校验的锁或数据库条件更新;MQ 消费以业务唯一键、去重表或幂等状态机防止重复处理。
- 慢 SQL 与 OOM:通过慢查询日志、执行计划和线上指标定位索引、回表或排序问题。OOM 排查需保留堆转储并分析大对象、缓存和线程栈增长,修复生命周期而非简单增大堆。
- HashMap 变化:JDK 8 使用数组加链表/红黑树,减少高冲突桶的最坏查询复杂度;扩容时按高位拆分,降低重新计算成本。