1、如果在单例模式中static对象含有别的对象的引用时,导致被引用的对象无法给gc回收,导致内存泄漏,Android里典型的例子就是单例持有activity的引用,导致activity销毁的时候不能被gc回收,解决的方法:如果需要context的话可以用applicationContext代替,因为application在整个app生命周期一直存在的。
2、非静态内部类、匿名内部类会持有外部类的引用,所以如果外部类销毁时,内部类还在运行的话,就会造成内存泄漏,比如在android的activity中开一个匿名子线程处理一些事情,这时如果activity销毁的话子线程还在运行,则activity就得不到gc回收,解决的方法:可以使用静态方法或者静态类,如果需要用到activity的对象用于更新界面,可以用弱引用,每次使用需要判空,防止空指针。
3、当注册一些监听的时候,在销毁的时候一定要注销,否则引用在监听的地方持有者也有造成内存泄漏
4、一些资源操作时,打开操作完要关闭