成员变量 局部变量 内存泄漏(很怪异的)

为什么用成员变量?要多态

成员变量会有什么问题?如果对象本身用完被保存起来了,则这些资源泄漏了

能不能在最外边用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给多态了

posted on 2024-10-09 01:07  silyvin  阅读(11)  评论(0)    收藏  举报