成员变量 局部变量 内存泄漏(很怪异的)
为什么用成员变量?要多态
成员变量会有什么问题?如果对象本身用完被保存起来了,则这些资源泄漏了
能不能在最外边用finally,置为null?可以,但是就是不想用fianlly
func() {
try {
this.resourceReference = new xxx;
......
} finally {
this.resourceReference = null;
}
}
那怎么办?
WeakReference wref = null;
func() {
Object resource = new xxx;
wref = new WeakReference(resource)
}
当func结束(包括异常)后,xxx的强引用所在的局部变量没了,xxx只剩一个弱引用
结果发现还不如把new xxx给多态了
浙公网安备 33010602011771号