黑马程序员技术交流社区

标题: Java中有哪些问题会导致内存泄露? [打印本页]

作者: xietansheng    时间: 2014-3-3 22:52
标题: Java中有哪些问题会导致内存泄露?
本帖最后由 xietansheng 于 2014-3-4 22:34 编辑

Java中有哪些问题会导致内存泄露?
作者: Amorvos    时间: 2014-3-3 23:03
对于Java程序而言,只要他们一直处于可达状态,垃圾回收机制就不会回收他们,即使说他们已经成为了垃圾,但垃圾回收机制并不会把他们看做垃圾予以回收。
也就说当创建了过多的强引用变量时,在不使用后有没有指向null;就会造成内存泄露。
采用软引用、虚引用,少用直接量,少用静态常量,避免循环中创建对象,尽量少用finalize方法可以有效减少内存泄漏。
作者: 榨菜    时间: 2014-3-3 23:05
HashSet集合。  如果自己定义了hashcode方法。 然后存入对象后,又修改了算出hash值的变量后。 就不能找到原来存放的对象了。
作者: victorsun    时间: 2014-3-4 13:02
内存泄露,就是指一个不再被程序使用的对象或变量一直被占据在内存中,而无法释放,虽然java中有内存释放机制,自动回收那些孤儿进程,但是我们难免会人为的编写代码造成内存泄露,很典型的例子,比如一个短生命周期对象被一个长生命周期对象(如类的静态成员对象)引用,这就使得本来要被回收的短生命周期对象永远无法被回收,造成内存泄露,这样就会大大降低代码的执行效率。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2