java(7):内存泄露
日期:2017/10/27
1. 概念
内存泄露:一个不再被程序使用的对象或变量,还在内存中占用存储空间。C/C++中,开发人员负责内存的分配和释放,JAVA中,引入了GC(垃圾回收机制)。
2.Java的垃圾回收标准:
一、给对象赋予了空值null,以后不被使用;
二、给对象赋予了新值,重新分配了内存空间。
由于GC可以有效解决第一种情况,但无法保证第二种情况的对象被释放。
3.防止内存泄露:
下面是几条容易上手的建议,来帮助你防止内存泄漏的发生。
- 特别注意一些像HashMap、ArrayList的集合对象,它们经常会引发内存泄漏。当它们被声明为static时,它们的生命周期就会和应用程序一样长。
- 特别注意事件监听和回调函数。当一个监听器在使用的时候被注册,但不再使用之后却未被反注册。
- “如果一个类自己管理内存,那开发人员就得小心内存泄漏问题了。” 通常一些成员变量引用其他对象,初始化的时候需要置空。