Java内存泄漏与C++内存泄漏是有区别的:
C++中,分配的对象不可到达(或没有引用指向它),这些对象永远回收不了,即泄漏。
Java中,针对C++的那种情况,Java虚拟机的垃圾回收机制可以解决。
Java中指的内存泄漏需满足两个条件:一、对象有引用指向它,二、该对象不再被使用(无用对象),对于这类情况,属于Java的内存泄漏,不会被Java GC回收,却占用内存。
例:
Vector v = new Vector(100);
for(int i=0; i<100; i++) {
Object o = new Object();
v.add(o);
o = null;
}
虽然o=null;释放了引用本山,但是,v中仍有引用指向, 如果v在之后没有继续使用,最好也加上v=null; 否则就存在Java内存泄漏.
程序中造成内存内存泄漏的,通常是发生在底层容器上,如HashMap,Hashtable, Vector等等集合类,尤其是静态的
避免方法,可以在确认对象无用时,将其引用设置为null. 这样GC到时候会将其回收。
分享到:
相关推荐
如何解决Java内存泄漏
java内存泄露、溢出检查方法和工具。 步骤: 1,使用linux命令生存堆栈文件 2,用MemoryAnalyzer.exe工具打开 3,根据工具生成的饼状图可以清晰的找出内存泄漏源
java内存泄漏分析工具
java内存泄漏解决java内存泄漏解决java内存泄漏解决
java 内存泄漏
java内存泄露查询的几个命令系统命令的使用说明
什么是内存泄漏?造成内存泄漏的原因?如何解决内存泄漏?以及如何避免内存泄漏等。。。
java内存泄露定位与分析
java内存泄露问题的定位与详细的分析过程
详细介绍了 java内存泄露 的一些细节,很受用的
有关java内存泄露的详细资料,Java与C语言的内存管理模型,内存泄漏方式
关于JAVA内存泄漏问题注意事项.doc
Java内存泄露及内存无法回收解决方案,深入讲解相关原理及相关过程。
通过一个Demo来简要介绍下ThreadLocal和ClassLoader导致内存泄露最终OutOfMemory的场景。下面通过示例代码给大家分享Java内存泄露的相关知识,感兴趣的朋友一起看看吧
java 内存泄露分析方法、在工作中经常会碰到各种原因导致的内存泄露问题,本方法或许可以帮你快速定位内存泄露的原因从而解决问题
Java 内存泄露 解决方案 outofmemoryException 从实践获取真理
该工具用来排查线上程序出现内存泄漏或溢出,死锁等相关问题,快速分析堆栈异常情况,找到问题代码进行修复。
详细介绍Java的内存管理与内存泄露 作为Internet最流行的编程语言之一...这里与大家分享我们在开发过程中遇到的Java内存泄漏的检测和处理解决过程. 本文先介绍Java的内存管理,以及导致Java内存泄露的原因。 ........
由于在开发和面试中往往都会遇到java内存泄露问题,所以综合个人平时遇到的和搜集了些网上的关于内存泄露问题写了这篇总结,同时加了点小例子,希望对大家有所帮组,如果有所不全,希望给我留言提出来,供大家相互...