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

37次阅读

共计 382 个字符,预计需要花费 1 分钟才能阅读完成。

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. 单例模式

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

正文完
 0