import java.util.HashMap;
import java.util.Map; public class HashMapOver { public static void main(String[] args) {
Map<Person, Integer> map = new HashMap<Person, Integer>();
Person p = new Person("zhangsan", 12);
System.out.println(map.size());
map.put(p, 1);
System.out.println(p.hashCode());
p.setName("lisi"); // 因为p.name参与了hash值的计算,修改了之后hash值发生了变化,所以下面删除不掉
map.remove(p);
System.out.println(p.hashCode());
System.out.println(map.size());
}
} class Person {
private String name;
private int age; public Person(String name, int age) {
super();
this.name = name;
this.age = age;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} @Override
public boolean equals(Object obj) {
// TODO Auto-generated method stub
return super.equals(obj);
} @Override
public int hashCode() {
return name.hashCode() * 123;
}
}

内存泄漏很详细的文章

https://www.jb51.net/article/92311.htm

最新文章

  1. JS当心隐式的强制转换
  2. MFC 鼠标 移动到某控件时 修改鼠标形状为手的形状
  3. js对象的继承以及公有私有属性的定义和读写
  4. PAT (Basic Level) Practise:1010. 一元多项式求导
  5. Windows Phone 8.1商店启动协议
  6. 【LeetCode】16. 3Sum Closest
  7. haproxy实现mysql从库负载均衡
  8. GitHub的代码托管和使用方法
  9. 秒懂sql intersect
  10. Vim 默认开启行号、语法显示等设置
  11. Linux网络服务01——Linux网络基础设置
  12. 拇指玩」制作的「谷歌安装器」app
  13. Linux之文件、目录
  14. node 简单的爬虫
  15. Makefile 中的.PHONY
  16. RocketMQ 顺序消费只消费一次 坑
  17. 通过 ulimit 改善系统性能
  18. Github入门 - Github基本使用及Github桌面版使用
  19. Go 中包导入声明
  20. MySQL事务及隔离级别(读书小结)

热门文章

  1. Each record in table should have a unique `key` prop,or set `rowKey` to an unique primary key.
  2. 《深度学习-改善深层神经网络》-第二周-优化算法-Andrew Ng
  3. JDK自带反编译工具javap
  4. JS高级学习历程-17
  5. Js 验证时间格式是否正确
  6. Python随笔---return与print,全局变量与局部变量
  7. NetCore中使用Myrmec
  8. Spring创建对象的几种方法
  9. (转)linux traceroute命令参数及用法详解--linux跟踪路由命令
  10. java ReentranLock锁