关注
内存泄漏简单地说就是不再会被使用的对象的内存不能被回收。
对象都是有生命周期的,有的长,比如老年代的对象,有的短,比如新生代的对象。如果长生命周期的对象持有短生命周期的引用,就很可能会出现内存泄露。
1.静态的容器,如HashMap、ArrayList,静态容器中保有着其他无用对象的引用,会导致无用对象无法被回收,而静态的容器的生命周期是与进程生命周期一致的。
比如 HashMap.put(Key, Object);而这个Object值却是null的话,会造成Object无法被回收。
2.各种提供close()方法的对象
比如Hibernate。我们操作数据库时,通过SessionFactory获取一个session。
Session session=sessionFactory.openSession();
完成后我们必须调用close()方法关闭:session.close();
SessionFactory就是一个长生命周期的对象,而session相对是个短生命周期的对象,但是框架这么设计是合理的:它并不清楚我们要使用session到多久,于是只能提供一个方法让我们自己决定何时不再使用。如果没有调用close()方法,资源连接是不会被GC垃圾回收器回收的。
3.单例模式导致内存泄漏
因为单例模式static的对象是存放在方法区中的。不会被回收。jdk1.8之后存到了元空间。并且,这个static对象具有JVM的整个生命周期,是一个长生命周期的对象,如果引用短生命周期的对象,很可能会导致内存泄漏
4.内部类和外部模块的引用
其实原理依然是一样的,只是出现的方式不一样而已。
5.容器如HashSet中修改了其中的值,因为HashSet内部是封装了HashMap的,所以当对HashSet中的元素进行修改时,会改变该元素的HashCode,也就是说会改变该元素在HashMap中的存放位置,但是由于没有改变在HashSet中的存放位置,因此使用remove()方法都无法进行移除,这就会造成内存泄漏
解决办法是重写hashcode()和equals()方法
而造成内存泄漏,我们可以对其进行排查。
1.使用虚拟机进程状况工具jps,确定频繁Full GC现象
2.使用jmap,找出导致频繁Full GC的原因
3.使用MAT查看,定位到代码,
查看原帖
点赞 评论
相关推荐

点赞 评论 收藏
分享
牛客热帖
更多
- 1... HR面,到底该准备些啥(附核心问题回答思路)1.8W
- 2... 懂车帝二面 2025.10.11 1h32min4706
- 3... 除了卷大厂,还有其他出路吗。。。4706
- 4... 双非秋招timeline供参考(腾讯字节阿里快手美团)3242
- 5... 牛牛求救🆘,不敢梭哈后端第二技能点怎么搭配3234
- 6... 小红书一面面经2918
- 7... 10.12pdd笔试大鸭蛋2563
- 8... 10.12 拼多多技术岗笔试 第二题 求教2456
- 9... 第一次去北京那么远的地方实习,心里总是不安,大家会有这种感觉吗?2449
- 10... 华为10月10号考的手写LSTM被压中了2145
正在热议
更多
# 面包vs爱情,怎么选? #
9100次浏览 100人参与
# 职场新人体验 #
84403次浏览 600人参与
# 爱玛科技集团求职进展汇总 #
27529次浏览 198人参与
# 实习生如何通过转正 #
104314次浏览 1395人参与
# tplink提前批进度交流 #
207192次浏览 1506人参与
# 安克创新求职进展汇总 #
54028次浏览 530人参与
# 深信服秋招来了 #
279808次浏览 2916人参与
# Tplink求职进展汇总 #
180527次浏览 913人参与
# 秋招结束之后的日子 #
86480次浏览 977人参与
# 面试被问“你的缺点是什么?”怎么答 #
154974次浏览 2163人参与
# 贝壳求职进展汇总 #
34779次浏览 184人参与
# 硬件/芯片公司岗位评价 #
8410次浏览 28人参与
# Offer比较,你最看重什么? #
215395次浏览 1390人参与
# 互联网公司爆料 #
144774次浏览 708人参与
# 招银网络求职进展汇总 #
168808次浏览 993人参与
# 联影求职进展汇总 #
43143次浏览 284人参与
# 华为海思工作体验 #
29159次浏览 120人参与
# 新凯来求职进展汇总 #
50002次浏览 128人参与
# 材料进Fab厂真的劝退吗? #
56189次浏览 204人参与
# 五一之后,实习真的很难找吗? #
88116次浏览 556人参与
# 应届生,你找到工作了吗 #
69152次浏览 459人参与
# 总结:哪家公司最喜欢泡池子 #
144152次浏览 520人参与