关注
内存泄漏简单地说就是不再会被使用的对象的内存不能被回收。
对象都是有生命周期的,有的长,比如老年代的对象,有的短,比如新生代的对象。如果长生命周期的对象持有短生命周期的引用,就很可能会出现内存泄露。
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查看,定位到代码,
查看原帖
点赞 评论
相关推荐
今天 16:35
门头沟学院 客户端其它 点赞 评论 收藏
分享
09-18 03:33
广州松田职业学院 人力资源专员/助理 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
- 1... 《从研一摆烂到稳拿oc:嵌入式er的踩坑血泪史,这些弯路真的别再走了!》4358
- 2... 除了卷大厂,还有其他出路吗。。。3301
- 3... 懂车帝二面 2025.10.11 1h32min2656
- 4... 26国考公告出炉,放宽到38岁意味着什么2186
- 5... 下一站回家2026
- 6... 双非秋招timeline供参考(腾讯字节阿里快手美团)1894
- 7... 牛牛求救🆘,不敢梭哈后端第二技能点怎么搭配1738
- 8... 最近面试回答不出来的题1551
- 9... 为什么我说程序员一定会被AI替代1530
- 10... 第一次去北京那么远的地方实习,心里总是不安,大家会有这种感觉吗?1371
正在热议
更多
# 找工作中的小确幸 #
5958次浏览 62人参与
# 实习在多还是在精 #
1491次浏览 29人参与
# 爱玛科技集团求职进展汇总 #
29369次浏览 205人参与
# 面包vs爱情,怎么选? #
14926次浏览 164人参与
# 秋招踩过的“雷”,希望你别再踩 #
11176次浏览 113人参与
# 发面经攒人品 #
2319776次浏览 32343人参与
# 深信服秋招来了 #
280353次浏览 2917人参与
# 实习下班不想学习,正常吗? #
1931次浏览 36人参与
# 机械求职避坑tips #
66997次浏览 449人参与
# 校招谈薪一定要知道的事 #
1735次浏览 31人参与
# 贝壳求职进展汇总 #
35669次浏览 196人参与
# 机械人值得去的小众企业 #
24040次浏览 54人参与
# 你觉得什么岗位会被AI替代 #
3301次浏览 71人参与
# 秋招结束之后的日子 #
87675次浏览 985人参与
# 浪潮求职进展汇总 #
17621次浏览 137人参与
# 投格力的你,拿到offer了吗? #
118805次浏览 686人参与
# 新凯来求职进展汇总 #
51439次浏览 131人参与
# 职场新人体验 #
86413次浏览 611人参与
# 机械制造面试点评 #
72074次浏览 452人参与
# Offer比较,你最看重什么? #
216111次浏览 1394人参与
# 硬件/芯片公司岗位评价 #
8734次浏览 29人参与
# 招银网络求职进展汇总 #
171908次浏览 997人参与