news 2026/6/9 17:47:06

Java 内存泄漏原因(长生命周期的对象持有短生命周期对象的引用、未正确关闭资源等)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java 内存泄漏原因(长生命周期的对象持有短生命周期对象的引用、未正确关闭资源等)

Java 内存泄漏原因

  1. 长生命周期的对象持有短生命周期对象的引用:例如,静态集合不断添加对象而不清理
privatestaticfinalList<byte[]>cache=newArrayList<>();voidadd(){cache.add(newbyte[1024*1024]);}
  1. 未正确关闭资源:例如,数据库连接、文件流、网络连接未关闭
FileInputStreamfileInputStream=null;try{fileInputStream=newFileInputStream("target.txt");}catch(IOExceptione){e.printStackTrace();}
  1. 内部类持有外部类引用:非静态内部类持有外部类实例,若内部类生命周期更长,会导致外部类无法释放
publicclassOuter{privateStringvalue="Outer";classInner{voidprint(){System.out.println(value);}@Overrideprotectedvoidfinalize()throwsThrowable{System.out.println("Inner 对象被回收");super.finalize();}}@Overrideprotectedvoidfinalize()throwsThrowable{System.out.println("Outer 对象被回收");super.finalize();}}
publicclassTest{publicstaticvoidmain(String[]args){Outerouter=newOuter();Outer.Innerinner=outer.newInner();inner.print();System.out.println("----- outer 被设置为 null");outer=null;System.gc();try{Thread.sleep(10*1000);}catch(InterruptedExceptione){e.printStackTrace();}System.out.println("----- inner 被设置为 null");inner=null;System.gc();try{Thread.sleep(10*1000);}catch(InterruptedExceptione){e.printStackTrace();}}}
# 输出结果 Outer ----- outer 被设置为 null ----- inner 被设置为 null Inner 对象被回收 Outer 对象被回收
  1. 不合理的作用域:将局部变量提升为静态变量,意外延长对象生命周期

  2. 监听器或回调未注销:注册了监听器或回调,但是缺少移除方法

  3. ThreadLocal 使用不当:例如,线程池的线程复用时,ThreadLocal 未及时调用 remove 方法,导致数据残留

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

【计算机毕设】4S店车辆管理系统

&#x1f49f;博主&#xff1a;程序员小俊&#xff1a;CSDN作者、博客专家、全栈领域优质创作者 &#x1f49f;专注于计算机毕业设计&#xff0c;大数据、深度学习、Java、小程序、python、安卓等技术领域 &#x1f4f2;文章末尾获取源码数据库 &#x1f308;还有大家在毕设选题…

作者头像 李华
网站建设 2026/6/5 19:44:34

【深度学习新浪潮】如何评价Kaiming He新作《Generative Modeling via Drifting》?

核心结论:这篇论文由邓明扬一作、何恺明团队于2026年2月4日发表在arXiv上,提出了Drifting Models这一全新生成建模范式,其核心创新在于将推理时的迭代过程转移到训练阶段,实现了单步(1-NFE)生成的SOTA性能,同时在理论上建立了清晰的物理直觉与数学平衡条件,为生成模型的效…

作者头像 李华
网站建设 2026/6/5 19:32:05

智能天窗设计

智能天窗设计与实现 第一章 设计背景与核心目标 传统汽车或家居天窗多依赖手动开关或固定档位控制&#xff0c;存在操作不便、无法根据环境变化自适应调节、缺乏防夹手与雨水防护等问题&#xff0c;难以满足现代用户对便捷性、安全性与智能化的使用需求。尤其在突发降雨、强光…

作者头像 李华
网站建设 2026/6/6 4:33:11

智能手套设计

智能手套设计与实现 第一章 设计背景与核心目标 传统手套仅具备保暖、防护等基础功能&#xff0c;缺乏环境感知、健康监测、智能交互等拓展能力&#xff0c;难以满足现代人群在户外探险、运动健身、健康管理等场景的多元化需求。智能手套依托柔性传感、低功耗电子与物联网技术&…

作者头像 李华
网站建设 2026/6/6 8:00:10

可焊性测试(SD)对LED车灯稳定性评估

引言在汽车电子制造领域&#xff0c;焊接质量是决定元器件与电路板连接可靠性的关键环节。对于LED车灯而言&#xff0c;其引线框架、支架或封装基板的可焊性直接决定了焊接工艺的稳定性与长期性能。AEC-Q102作为车用LED器件的国际权威可靠性认证标准&#xff0c;其中的"可…

作者头像 李华
网站建设 2026/6/6 6:44:57

如何在生产环境中部署Java调用淘宝商品详情API的项目?

你想知道在生产环境中部署「Java 调用淘宝商品详情 API」项目的完整流程&#xff0c;我会聚焦生产环境的核心诉求&#xff08;稳定性、可运维、安全性&#xff09;&#xff0c;从「部署前准备 → 主流部署方案&#xff08;Docker 优先&#xff09; → 运维保障 → 故障兜底」展…

作者头像 李华