ThreadLocal 可能引发内存泄漏的原因是什么?如何避免?
考察说明
考察对弱引用、Entry 生命周期和内存泄漏风险的判断与规避能力
回答思路
- 指出 key 为弱引用而 value 为强引用,Thread 存活时 value 无法回收
- 明确泄漏前提是线程长期存活且不再访问该 ThreadLocal
- 给出避免措施:使用完显式 remove,或使用 try-finally 确保清理
- 能说明 ThreadLocalMap 的补充清理机制(如 get/set 时顺带清理)
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。