b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

weakreference_weakreference源码解析_handler weakreference(3)

电脑杂谈  发布时间:2017-05-27 23:01:27  来源:网络整理

② WeakReference引用过的 heap 对象被声明为 finalizable 。

③ 当heap 对象的 finalize() 方法被运行而且该对象占用的内存被释放时, WeakReference 对象就被添加到它的ReferenceQueue (如果后者存在的话)。

D、 GC发现一个只有虚引用的对象内存,那么:

① PhantomReference引用过的 heap 对象被声明为 finalizable 。

② PhantomReference在堆对象被释放之前就被添加到它的 ReferenceQueue 。

值得注意的地方有以下几点:

1、 GC 在一般情况下不会发现软引用的内存对象,只有在内存明显不足的时候才会发现并释放软引用对象的内存。

2、 GC 对弱引用的发现和释放也不是立即的,有时需要重复几次 GC ,才会发现并释放弱引用的内存对象。

3、软引用和弱引用在添加到 ReferenceQueue的时候,其指向真实内存的引用已经被置为空了,相关的内存也已经被释放掉了。而虚引用在添加到 ReferenceQueue的时候,内存还没有释放,仍然可以对其进行访问。

代码示例

通过以上的介绍,相信您对Java的引用机制以及几种引用方式的异同已经有了一定了解。光是概念,可能过于抽象,下面我们通过一个例子来演示如何在代码中使用Reference 机制。

String str = new String( ' hello ' ); // ① ReferenceQueue <String > rq = new ReferenceQueue < String > (); // ②WeakReference < String > wf = new WeakReference < String> (str, rq); // ③ str = null ; // ④取消'hello'对象的强引用 String str1 =wf.get(); // ⑤假如'hello'对象没有被回收,str1引用'hello'对象 //假如'hello'对象没有被回收,rq.poll()返回null Reference


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-49605-3.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 刘渊
      刘渊

      为什么韩国出专辑一定要把头发弄的五颜六色

    • 谈羲仲
      谈羲仲

      全部是假冒产品

    热点图片
    拼命载入中...