Java内存自动回收,为什么会有内存泄露?

在刚开始接触Java之前,一直弄不明白这个问题。刚在博客园首页上看到这个问题,上面的解释非常清楚,我这里简要摘录过来。

原引为为:https://www.cnblogs.com/liululee/p/11056779.html

Java内存泄露的原因主要可以主要归类为以下四方面:

1.Performance(性能):通常与过多的对象创建与删除有关,垃圾收集的长时间延迟,过多的操作系统页面交换等相关联。

2.Resource Constraints(资源约束):当可用内存很少或内存过于分散而无法分配大对象时,就会造成内存泄露。这可能是本机的或者更常见的是与Java堆相关。

3.Java heap leaks(Java堆泄露):这是最经典的内存泄露,Java对象在不释放的情况下不断创建。这是由潜在的引用对象引起的。

4.Native Memory leaks(本机内存泄露):与Java堆之外的任何不断增长的内存利用率相关联,例如由JNI代码,驱动程序,甚至JVM分配

原文地址:https://www.cnblogs.com/linwenbin/p/11058724.html