Sobes.tech
Junior — Middle

Kannst du die in Java existierenden Referenztypen und ihre Eigenschaften auflisten?

sobes.tech KI

Antwort von AI

In Java gibt es die folgenden Referenztypen, die die Garbage Collection und das Speicher-Management beeinflussen:

  1. Starke Referenz (Strong Reference)

    • Die Standardreferenz, die wir verwenden.
    • Ein Objekt mit einer starken Referenz wird vom Garbage Collector nicht gelöscht.
  2. Weiche Referenz (Soft Reference)

    • Wird für Caching verwendet.
    • Objekte mit weichen Referenzen werden nur bei Speicherknappheit entfernt.
    • Klasse: java.lang.ref.SoftReference
  3. Schwache Referenz (Weak Reference)

    • Objekte mit schwachen Referenzen werden beim nächsten Garbage-Collection-Zyklus entfernt, wenn keine starken Referenzen existieren.
    • Wird zur Implementierung schwacher Caches verwendet.
    • Klasse: java.lang.ref.WeakReference
  4. Phantom Referenz (Phantom Reference)

    • Wird verwendet, um den Moment zu verfolgen, wenn ein Objekt zur Entfernung bereit ist.
    • Erlaubt nicht, das Objekt über die Methode get() zu erhalten (gibt null zurück).
    • Wird für eine feinere Kontrolle der Ressourcenbereinigung eingesetzt.
    • Klasse: java.lang.ref.PhantomReference

Beispiel für die Erstellung einer schwachen Referenz:

import java.lang.ref.WeakReference;

String stark = new String("Hello");
WeakReference<String> schwach = new WeakReference<>(stark);

stark = null; // das Objekt ist jetzt nur noch über die schwache Referenz zugänglich

String wert = schwach.get(); // kann null zurückgeben, wenn das Objekt bereits gesammelt wurde