zoukankan      html  css  js  c++  java
  • 弱引用

    占用大量内存,但通过垃圾回收功能回收以后很容易重新创建的对象特别适合使用弱引用。

    可以创建短弱引用或长弱引用:

    • Short

      垃圾回收功能回收对象后,短弱引用的目标会变为 null。 弱引用本身是托管对象,与其他任何托管对象一样需要经过垃圾回收。 短弱引用是 WeakReference 的无参数构造函数。

    • Long

      在对象的 Finalize 方法已调用后,长弱引用获得保留。 这样,便可以重新创建该对象,但该对象仍保持不可预知的状态。 若要使用长引用,请在 WeakReference 构造函数中指定 true

      如果对象类型不包含 Finalize 方法,应用的是短弱引用功能。弱引用只在目标被收集前有效,运行终结器后可以随时收集目标。

    若要建立强引用并重新使用对象,请将 WeakReference 的 Target 属性强制转换为对象类型。 如果 Target 属性返回 null,表示对象已被收集;否则,可继续使用对象,因为应用已重新获得对它的强引用。

    仅在必要时使用长弱引用,因为在终结后对象的状态不可预知。

    避免对小对象使用弱引用,因为指针本身可能和对象一样大,或者比对象还大。

  • 相关阅读:
    「2019冬令营提高组」原样输出
    FJWC2019
    P2763 试题库问题
    P3979 遥远的国度
    P2754 [CTSC1999]家园
    P1251 餐巾计划问题
    P1382 楼房
    P1384 幸运数与排列
    P4294 [WC2008]游览计划
    P3345 [ZJOI2015]幻想乡战略游戏
  • 原文地址:https://www.cnblogs.com/yetsen/p/13497569.html
Copyright © 2011-2022 走看看