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