Java:什么是java内存泄漏?

  内存管理是Java最强大的功能,也是开发人员选择Java而非其他平台和编程语言的众多原因之一。表面上,你创建对象,Java部署其垃圾收集器来分配和释放内存,但这并不是说Java完美无缺。事实上,内存泄漏在Java应用程序中经常发生。

  你应该担心内存泄漏吗?

  内存泄漏通常涉及少量内存资源,你可能不会想到这些资源会有问题。但是,当应用程序返回java.lang.OutOfMemoryError时,第一个也是最可能的怀疑是内存泄漏。

  内存泄漏通常是程序编写不良的一个指标。如果你是那种希望一切都完美的程序员,你应该调查你遇到的每一个内存泄漏。作为Java程序员,无法知道Java虚拟机何时运行垃圾收集器。这是正确的,即使你指定System.gc()。当内存不足或可用内存不足时,垃圾收集器可能会运行。如果垃圾收集器没有释放足够的内存资源,程序将从操作系统中获取内存。

  

  与C++和其他编程语言中发生的内存泄漏相比,Java内存泄漏并不总是严重的。考虑内存泄漏有两个因素:

  泄漏的大小

  程序的生命周期。

  一个小型Java应用程序可能存在内存泄漏,但JVM是否有足够的内存来运行你的程序无关紧要。然而,如果Java应用程序持续运行,那么内存泄漏将是一个问题。这是因为持续运行的程序最终会耗尽内存资源。

  另一个内存泄漏可能是一个问题的领域是,当程序调用大量占用大量内存的临时对象时。当这些占用内存的对象未被取消引用时,程序将很快拥有比所需更少的可用内存。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值