内存优化是一个程序员的基本功。有时也要切合项目的实际需求来做选择。
一、解决所有的内存泄漏
内存泄漏概念:
不再使用的对象没有被回收,就是内存泄露。
- 单利泄漏
主要原因还是因为一般情况下单例都是全局的,有时候会引用一些实际生命周期比较短的变量,导致其无法释放。
例如 :
activity 的 content 赋值到单利对象里面的成员量变量
code:
private static volatile ClassXX instance;
private Context context;
private ClassXX(Context context) {
this.context = context;
}
public static ClassXX getInstance(Context context) {
if (instance == null) {
synchronized (instance) {
if(instance == null) {
instance = new ClassXX(context);
}
}
}
return instance;
}
如果这个Context
是 Activity 的 Context ,当你的 Activity finish(); 之后Activity 这个对象的内存还是在堆中,没有释放。