A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© xietansheng 中级黑马   /  2014-3-3 22:52  /  1219 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 xietansheng 于 2014-3-4 22:34 编辑

Java中有哪些问题会导致内存泄露?

3 个回复

倒序浏览
对于Java程序而言,只要他们一直处于可达状态,垃圾回收机制就不会回收他们,即使说他们已经成为了垃圾,但垃圾回收机制并不会把他们看做垃圾予以回收。
也就说当创建了过多的强引用变量时,在不使用后有没有指向null;就会造成内存泄露。
采用软引用、虚引用,少用直接量,少用静态常量,避免循环中创建对象,尽量少用finalize方法可以有效减少内存泄漏。

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
HashSet集合。  如果自己定义了hashcode方法。 然后存入对象后,又修改了算出hash值的变量后。 就不能找到原来存放的对象了。
回复 使用道具 举报
内存泄露,就是指一个不再被程序使用的对象或变量一直被占据在内存中,而无法释放,虽然java中有内存释放机制,自动回收那些孤儿进程,但是我们难免会人为的编写代码造成内存泄露,很典型的例子,比如一个短生命周期对象被一个长生命周期对象(如类的静态成员对象)引用,这就使得本来要被回收的短生命周期对象永远无法被回收,造成内存泄露,这样就会大大降低代码的执行效率。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马