news 2026/4/18 5:34:02

内存泄漏可能由哪些原因导致呢?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
内存泄漏可能由哪些原因导致呢?

内存泄漏可能的原因有很多种:

内存泄漏可能原因

静态集合类引起内存泄漏

静态集合的生命周期和 JVM 一致,所以静态集合引用的对象不能被释放。

public class OOM { static List list = new ArrayList(); public void oomTests(){ Object obj = new Object(); list.add(obj); } }

单例模式

和上面的例子原理类似,单例对象在初始化后会以静态变量的方式在 JVM 的整个生命周期中存在。如果单例对象持有外部的引用,那么这个外部对象将不能被 GC 回收,导致内存泄漏。

数据连接、IO、Socket等连接

创建的连接不再使用时,需要调用close方法关闭连接,只有连接被关闭后,GC 才会回收对应的对象(Connection,Statement,ResultSet,Session)。忘记关闭这些资源会导致持续占有内存,无法被 GC 回收。

try { Connection conn = null; Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("url", "", ""); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("...."); } catch (Exception e) { }finally { //不关闭连接 } }

变量不合理的作用域

一个变量的定义作用域大于其使用范围,很可能存在内存泄漏;或不再使用对象没有及时将对象设置为 null,很可能导致内存泄漏的发生。

public class Simple { Object object; public void method1(){ object = new Object(); //...其他代码 //由于作用域原因,method1执行完成之后,object 对象所分配的内存不会马上释放 object = null; } }

hash值发生变化

对象Hash值改变,使用HashMap、HashSet等容器中时候,由于对象修改之后的Hah值和存储进容器时的Hash值不同,所以无法找到存入的对象,自然也无法单独删除了,这也会造成内存泄漏。说句题外话,这也是为什么String类型被设置成了不可变类型。

ThreadLocal使用不当

ThreadLocal的弱引用导致内存泄漏也是个老生常谈的话题了,使用完ThreadLocal一定要记得使用remove方法来进行清除。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 12:49:06

Qwen3-TTS-12Hz-1.7B-VoiceDesign与Java集成的企业级应用开发

Qwen3-TTS-12Hz-1.7B-VoiceDesign与Java集成的企业级应用开发 1. 为什么企业需要将语音能力嵌入Java系统 在日常工作中,我经常遇到客户提出类似的需求:客服系统需要更自然的语音播报,内部培训平台要支持多角色语音讲解,金融风控…

作者头像 李华
网站建设 2026/4/17 6:59:31

Chinese-RoBERTa-wwm模型微调实战:从数据准备到生产部署的避坑指南

最近在做一个中文文本分类的项目,用到了哈工大和科大讯飞联合发布的 Chinese-RoBERTa-wwm 模型。这个模型在不少中文 NLP 榜单上表现都挺亮眼,但实际微调起来,发现从数据准备到最终部署上线,中间有不少“坑”。今天就把我这次实战…

作者头像 李华
网站建设 2026/4/15 17:58:08

ChatGLM3-6B与Kubernetes集群部署方案

ChatGLM3-6B与Kubernetes集群部署方案 1. 为什么需要在Kubernetes上部署ChatGLM3-6B 大模型服务上线后,最常遇到的不是性能问题,而是稳定性、可扩展性和运维复杂度的问题。我见过太多团队把ChatGLM3-6B跑在单台服务器上,结果一到业务高峰期…

作者头像 李华
网站建设 2026/4/9 14:13:04

3D Face HRN作品集:支持导出OBJ+PNG的端到端3D人脸重建成果

3D Face HRN作品集:支持导出OBJPNG的端到端3D人脸重建成果 1. 这不是“修图”,而是把一张照片“变成立体人” 你有没有试过,只用手机拍一张自拍照,就生成一个能360度旋转、带真实皮肤纹理的3D人脸模型?不是靠一堆照片…

作者头像 李华
网站建设 2026/4/18 4:53:59

lychee-rerank-mm企业实操:用其构建内部知识图谱的图文关联增强模块

lychee-rerank-mm企业实操:用其构建内部知识图谱的图文关联增强模块 1. 为什么企业知识图谱需要图文关联增强? 在企业内部知识管理实践中,大量非结构化数据以“图片文字”形式存在:产品设计稿配说明文档、会议纪要附现场照片、培…

作者头像 李华