java HashMap 内存泄漏
2024-09-28 17:38:40
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
最新文章
- JS当心隐式的强制转换
- MFC 鼠标 移动到某控件时 修改鼠标形状为手的形状
- js对象的继承以及公有私有属性的定义和读写
- PAT (Basic Level) Practise:1010. 一元多项式求导
- Windows Phone 8.1商店启动协议
- 【LeetCode】16. 3Sum Closest
- haproxy实现mysql从库负载均衡
- GitHub的代码托管和使用方法
- 秒懂sql intersect
- Vim 默认开启行号、语法显示等设置
- Linux网络服务01——Linux网络基础设置
- 拇指玩」制作的「谷歌安装器」app
- Linux之文件、目录
- node 简单的爬虫
- Makefile 中的.PHONY
- RocketMQ 顺序消费只消费一次 坑
- 通过 ulimit 改善系统性能
- Github入门 - Github基本使用及Github桌面版使用
- Go 中包导入声明
- MySQL事务及隔离级别(读书小结)
热门文章
- Each record in table should have a unique `key` prop,or set `rowKey` to an unique primary key.
- 《深度学习-改善深层神经网络》-第二周-优化算法-Andrew Ng
- JDK自带反编译工具javap
- JS高级学习历程-17
- Js 验证时间格式是否正确
- Python随笔---return与print,全局变量与局部变量
- NetCore中使用Myrmec
- Spring创建对象的几种方法
- (转)linux traceroute命令参数及用法详解--linux跟踪路由命令
- java ReentranLock锁