當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java java.lang.ref.Reference用法及代碼示例


java.lang.ref.Reference 類是 reference 對象的 abstract base class。此類包含用於獲取有關引用對象的信息的方法。該類不是直接的 subclass,因為對引用對象的操作與co-operation 和garbage collector 接近。

類聲明:防止

public abstract class Reference<T>
extends Object

方法:

方法 說明
clear() 此方法通過清除此引用對象來防止此對象排隊。隻有java代碼可以調用該方法。垃圾Collector可以直接清除引用。垃圾Collector不需要調用此方法來清除引用。
enqueue() 此方法將此對象添加到其注冊隊列中。
get() 該方法用於獲取該引用所引用的對象。如果 java 代碼或垃圾Collector清除了此引用處的對象,則返回 null。
isEnqueued() 此方法用於了解此引用對象是否已注冊到任何隊列。

1.公共無效clear():

此方法通過清除此引用對象來防止此對象排隊。隻有 java code可以調用此方法。垃圾Collector可以直接清除引用。垃圾Collector不需要調用此方法來清除引用。

2. 公共布爾值enqueue()

此方法將此對象添加到其注冊隊列中。

返回:如果此引用對象已成功添加到已注冊隊列,則為 true;如果此引用對象在創建時未注冊到任何隊列,則為 false。

3.公共Tget():

該方法用於獲取該引用所引用的對象。如果 java 代碼或垃圾Collector清除了此引用處的對象,則返回 null。

返回:此引用引用的對象,如果該對象已清除,則為 null。

4.公共布爾值isEnqueued():

此方法用於了解此引用對象是否已注冊到任何隊列。

返回:如果此引用對象已入隊,則為 true,否則為 false

Java


// Java program to illustrate working of Reference Class
import java.lang.ref.Reference;
import java.lang.ref.ReferenceQueue;
import java.lang.ref.SoftReference;
class Gfg {
}
public class GFG {
    public static void main(String[] args)
    {
        // Strong Reference
        Gfg g = new Gfg();
        ReferenceQueue<Gfg> q = new ReferenceQueue<Gfg>();
        // Creating Soft Reference to Gfg-type object to
        // which 'g' is also pointing and registering it
        // with q
        Reference<Gfg> softref
            = new SoftReference<Gfg>(g, q);
        g = softref.get();
        System.out.println(g.toString());
        // enqueue softref to its registered queue i.e q
        if (softref.enqueue()) {
            System.out.println(
                "Object successfully enqueued");
        }
        else {
            System.out.println("Object not enqueued");
        }
        // checking if softref is enqueued or not
        if (softref.isEnqueued()) {
            System.out.println("Object is enqueued");
        }
        else {
            System.out.println("Object not enqueued");
        }
        // clearing this reference object
        softref.clear();
        System.out.println("Object cleared");
        // trying to enqueue after clearing
        if (softref.enqueue()) {
            System.out.println(
                "Object successfully enqueued");
        }
        else {
            System.out.println("Object not enqueued");
        }
    }
}
輸出
Gfg@214c265e
Object successfully enqueued
Object is enqueued
Object cleared
Object not enqueued


相關用法


注:本文由純淨天空篩選整理自abhinavjain194大神的英文原創作品 java.lang.ref.Reference Class in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。