面试

如果 key 是可变对象,存进去之后又改了参与 hashCode 计算的字段,那这个 entry 就再也找不到了。因为修改后 hashCode 变了,HashMap 会到新的槽位去找,但数据还在老槽位,get 返回 null,remove 也删不掉,造成内存泄漏。所 以 HashMap 的key 最好用不可变对象,String、Integer 这些都可以,自定义类当key 要特别小心。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐