Alle "Zeiger" (Referenzen) von Java sind Smart Pointer.
Java wird in einer verwalteten Umgebung ausgeführt. Das bedeutet, dass Java einen Garbage Collector verwendet, um Variablen zu bereinigen, die nicht mehr referenziert sind.
Java-Referenzen unterscheiden sich jedoch geringfügig von Zeigern. Java abstrahiert alle Zeigerwerte und Berechnungen, die Sie in C ++ sehen. Wenn Sie also ein neues Objekt erstellen und es in einer Variablen speichern, speichern Sie es in der Java-Version eines "intelligenten Zeigers".
Ich habe im Zusammenhang mit der Speicherverwaltung nur von intelligenten Zeigern gehört. Da das Speichermanagement der Kern der Java-Plattform ist, ist dies natürlich nicht notwendig.
Die am ehesten passenden Übereinstimmungen sind java.lang.ref.WeakReference und java.lang.ref.SoftReference, da sie erlauben, die Garbage Collection bis zu einem gewissen Grad anzupassen.
Nein, in Java gibt es keine Zeiger einer Klasse. Im Allgemeinen benötigen Sie keine Smart Pointer , da Sie bereits einen Garbage Collector implementiert haben, der die Referenzzählung durchführt, um den Speicherzuweisungs- / Freigabezyklus automatisch zu verwalten.
Tags und Links java smart-pointers