内存泄露问题

简介
何为内存泄漏
动态分配的内存空间,在使用完毕后未得到释放,结果导致一直占据该内存单元,直到程序结束。这个现象称之为内存泄漏。因此良好的代码规范,可以有效地避免这些错误。

内存泄漏带来的问题
1)长时间运行,程序会变卡,性能严重下降。
2)OutOfMemoryError错误,系统直接挂掉。

导致内存泄漏的原因
1)大量使用静态变量(静态变量与程序生命周期一样)
2)IO/连接资源用完没关闭(记得执行close操作)
3)内部类的使用方式存在问题(实力内部类或默认引用外部类对象)
4)缓存(Cache)应用不当(尽量不要使用强引用)
5)ThreadLocal应用不当(用完记得执行remove操作)

内存泄漏分析常用手段
应用内存分析工具 JProfiler, YourKit, Java VisualVM等。
在开发阶段时或者在测试环节,增加压力测试。
认真对待开发工具给出的告警提示,该关闭的资源尽早关闭。
选择合适的时机进行代码 review。
通俗地说,我们可以将内存泄漏视为一种疾病,如果不治愈,随着时间的推移,它可能导致致命的应用程序崩溃。内存泄漏很难解决,发现它们需要对 Java 语言的复杂掌握和掌握。在处理内存泄漏时,没有一种万能的解决方案,因为泄漏可能通过各种不同的事件发生。

但是,如果我们采用最佳实践并定期执行严格的代码排查和分析,那么我们可以将应用程序中内存泄漏的风险降到最低。
————————————————

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值