快手后端开发AI岗位面经
- 时间
- 2026-09
- 来源
- 牛客网
《面试题目》
- 审核消息重复消费会不会导致重复处罚?如何保证幂等?
- 布隆过滤器的原理是什么?为什么会误判?
- HashMap 扩容时发生了什么?为什么并发下不安全?
- HashMap 什么时候树化?为什么不直接使用红黑树?
- ThreadLocal 为什么会造成内存泄漏?如何避免?
- JVM 运行时数据区如何划分?
- CMS 和 G1 的垃圾回收流程有什么区别?
- 线上如何判断是不是 GC 瓶颈?
《参考解析》
消费幂等可用业务唯一键和唯一索引约束,处罚流水也要单独幂等,不能只依赖 MQ 的至少一次语义。布隆过滤器用位数组和多个哈希函数,只保证“不存在”结论可靠,全部命中时仍可能误判。JDK 8 在桶长度达到阈值且容量足够时才树化,以平衡链表的低常数和红黑树的对数复杂度。ThreadLocal 应在 finally 中 remove,否则线程池长生命周期会保留 value。