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:
-
Starke Referenz (Strong Reference)
- Die Standardreferenz, die wir verwenden.
- Ein Objekt mit einer starken Referenz wird vom Garbage Collector nicht gelöscht.
-
Weiche Referenz (Soft Reference)
- Wird für Caching verwendet.
- Objekte mit weichen Referenzen werden nur bei Speicherknappheit entfernt.
- Klasse:
java.lang.ref.SoftReference
-
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
-
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