关于java:常见内存泄漏引起原因

1. 动态汇合类

像hashmap,vector等,如果是全局的,动态的,汇合只增不减就会造成透露,汇合类应该增减的办法都有。

2. 当汇合外面的对象属性被批改后,在调用remove()不起作用

p a = new person; set.add(a); a.setName(“ddd”);set.remove(a);删除不掉,set.add(a);还能够胜利,外面有两个a对象,批改前的a拜访不到,内存透露,因为属性扭转对象的hashcode扭转,set就找不到了。

3. 监听器

当咱们往一个控件中增加监听对象,控件会用汇合之类的存储这些监听对象,当开释对象的时候遗记删除监听器

4. 各种连贯

遗记close();

5. 外部类和内部模块的援用

把对象的援用传给内部模块,内部模块没有去处这个援用;

6. 单例模式

单例对象始终存在,如果这个对象持有别的对象的援用,如果没有去处这个援用会造成这个对象透露

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理