<div> JavaScript is disabled on your browser.
Skip navigation links
Java™ Platform
Standard Ed. 8
compact3

Package java.lang.ref

提供参考对象类,该类支持与垃圾收集器的交互作用有限的程度。

See: 描述

Package java.lang.ref Description

提供参考对象类,该类支持与垃圾收集器的交互作用有限的程度。一个程序可以使用一个参考对象来保持对其他对象的引用,以这样的方式,后者的对象仍然可以由收集器回收。一个程序也可以安排在一段时间后,集电极已确定一个给定的对象的可达性改变了一些时间。

包装规格

参考对象封装了一个参考一些其他对象,引用本身可以检查和操作,就像任何其他的对象。提供了三种类型的参考对象,每一个弱于最后一个:软,弱,和幽灵。每种类型对应于一个不同的可达性级别,如下面所定义的。软引用是实现内存敏感的高速缓存,弱引用实现canonicalizing映射不阻止他们的钥匙(或价值)被回收,和幽灵引用调度pre-mortem清除行动,以更灵活的方式可能比java终结机制。

每个引用对象类型的抽象基类的子类实现Reference。这一子类的一个实例封装到一个特定的对象,一个单一的参考,称为参照。每一个参考对象提供获取和清除参考的方法。除了结算操作参考对象否则不可变的,所以没有set操作提供。一个程序可以进一步的子类,这些子类,添加任何字段和方法都需要它的目的,或者它可以使用这些子类而不改变。

通知

程序可以要求被通知在一个对象的可达性变化与当时的参考对象创建一个引用队列注册一个适当的参考对象。在垃圾回收器确定所指的可达性变化对应的引用类型的值时,它将对相关的队列添加参考。在这一点上,参考的是排队。该程序可以从一个队列中删除引用或通过阻塞,直到一个参考可用。引用队列的 ReferenceQueue类实现。

已注册的参考对象和它的队列之间的关系是片面的。也就是说,一个队列不跟踪已注册的引用的轨道。如果注册参考变得遥不可及,那么它将不会排队。它是利用参考对象,确保对象保持联系只要程序在他们所感兴趣的项目责任。

虽然一些程序将选择一个线程来删除一个或多个队列中的引用对象,并处理它们,这是没有必要的。经常工作的一个策略是检查在执行一些其他相当频繁的动作过程中的参考队列。例如,一个哈希表,使用弱引用实现弱密钥可以调查参考队列每次访问的表。这是怎样的WeakHashMap类作品。因为ReferenceQueue.poll方法只是检查内部数据结构,这张支票将增加系统开销小,哈希表的访问方法。

自动清除引用

软弱引用会自动清除收集器之前被添加到他们的队列中注册,如果任何。因此,软,弱引用不需要注册的队列,以是有用的,而幻影参考。一个对象,通过虚引用将持续到所有引用清除或自己成为遥不可及的可达性。

可达性

从最强到最弱,可达性水平不同,反映一个对象的生命周期。他们在操作定义如下:
从以下版本开始:
1.2
Skip navigation links
Java™ Platform
Standard Ed. 8

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.

本帮助文档是使用 《百度翻译》翻译,请与英文版配合使用 by--QQ:654638585