java.lang.ref.Clase de referencia en Java

java.lang.ref.Reference Class es una clase base abstracta para el objeto de referencia . Esta clase contiene métodos que se utilizan para obtener información sobre los objetos de referencia. Esta clase no es una subclase directa porque las operaciones en los objetos de referencia están en estrecha cooperación con el recolector de basura .

Declaración de clase: prevenir

public abstract class Reference<T>
extends Object

Métodos:

Método Descripción 
clear() Este método evita que este objeto se ponga en cola al borrar este objeto de referencia. Solo el código Java puede invocar este método. El recolector de basura puede borrar referencias directamente. El recolector de elementos no utilizados no necesita invocar este método para borrar las referencias.
poner en cola() Este método agrega este objeto a su cola registrada.
obtener() Este método se utiliza para obtener el objeto al que se refiere esta referencia. Devuelve nulo si el código Java o el recolector de basura borraron el objeto en esta referencia.
está en cola() Este método se utiliza para saber si este objeto de referencia está registrado en alguna cola o no.

1. vacío público clear(): 

Este método evita que este objeto se ponga en cola al borrar este objeto de referencia. Solo el código Java puede invocar este método. El recolector de basura puede borrar referencias directamente. El recolector de elementos no utilizados no necesita invocar este método para borrar las referencias.

2. puesta en cola booleana pública () : 

Este método agrega este objeto a su cola registrada.

Devuelve: Verdadero si este objeto de referencia se agregó correctamente a la cola registrada, falso si este objeto de referencia no estaba registrado con ninguna cola en el momento de su creación.

3. público T get(): 

Este método se utiliza para obtener el objeto al que se refiere esta referencia. Devuelve nulo si el código Java o el recolector de basura borraron el objeto en esta referencia.

Devuelve: Objeto al que hace referencia esta referencia, nulo si se borró el objeto.

4. booleano público isEnqueued(): 

Este método se utiliza para saber si este objeto de referencia está registrado en alguna cola o no.

Devuelve: verdadero si este objeto de referencia se ha puesto en cola; de lo contrario, falso

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");
        }
    }
}
Producción

Gfg@214c265e
Object successfully enqueued
Object is enqueued
Object cleared
Object not enqueued

Publicación traducida automáticamente

Artículo escrito por abhinavjain194 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *