Heim  >  Artikel  >  Java  >  Was ist ein Referenztyp in Java?

Was ist ein Referenztyp in Java?

(*-*)浩
(*-*)浩Original
2019-05-05 16:59:3918865Durchsuche

Referenztypen in Java beziehen sich auf alle Typen außer Basisdatentypen. In Java gibt es vier Referenztypen: starke Referenz, weiche Referenz, schwache Referenz und virtuelle Referenz. Referenztypen und primitive Typen haben unterschiedliche Eigenschaften und Verwendungszwecke.

Was ist ein Referenztyp in Java?

Empfohlener Kurs: Java-Tutorial

Java bietet zwei verschiedene Typen: Referenztypen und primitive Typen (oder Built- in Typen)

Referenztypen und primitive Typen verhalten sich völlig unterschiedlich und haben eine unterschiedliche Semantik.

Referenztypen und primitive Typen haben unterschiedliche Eigenschaften und Verwendungszwecke. Dazu gehören: Größen- und Geschwindigkeitsprobleme, in welcher Art von Datenstruktur dieser Typ gespeichert wird, wann Referenztypen und primitive Typen

Der Standard Wert, der bei Verwendung als Instanzdaten für eine Klasse angegeben wird.

Der Standardwert für Objektreferenz-Instanzvariablen ist null, während der Standardwert für Instanzvariablen primitiven Typs von ihrem Typ abhängt. Gleichzeitig für die Konsistenz objektorientierter Operationen.

Diese Grundtypen haben entsprechende Kapselungstypen: Integer, Short, Long, Byte, Float, Double, Character usw.

Die 4 Referenztypen von Java:

Sie sind StrongReference, SoftReference, WeakReference und PhantomReference (Virtual Reference)). Geordnet von der wahrscheinlichsten bis zur am wenigsten wahrscheinlichen GC-Erfassung.

StrongReference

Solange die starke Referenz vorhanden ist, wird der Garbage Collector das referenzierte Objekt niemals zurückfordern. Selbst wenn nicht genügend Speicher vorhanden ist, löst die JVM direkt einen OutOfMemoryError aus und wird nicht recycelt. wie Wenn Sie die Verbindung zwischen der starken Referenz und dem Objekt unterbrechen möchten, können Sie die starke Referenz explizit auf null zuweisen. Auf diese Weise kann die JVM das Objekt rechtzeitig wiederverwenden

Soft Reference (SoftReference)

Soft-Referenzen werden verwendet, um einige nicht wesentliche, aber dennoch nützliche Objekte zu beschreiben. Wenn genügend Speicher vorhanden ist, wird das Soft-Referenzobjekt nicht recycelt. Nur wenn nicht genügend Speicher vorhanden ist, wird das System das Soft-Referenzobjekt recyceln. Wenn beispielsweise nach dem Recycling des Soft-Referenzobjekts immer noch nicht genügend Speicher vorhanden ist, wird eine Speicherüberlaufausnahme ausgelöst. Diese Funktion wird häufig zur Implementierung von Caching-Technologien verwendet, z. B. zum Zwischenspeichern von Webseiten und Bildern Caching usw.

Verwenden Sie nach JDK1.2 die Klasse java.lang.ref.SoftReference, um Soft-Referenzen darzustellen.

Schwache Referenz

Die Referenzstärke einer schwachen Referenz ist schwächer als die einer weichen Referenz, unabhängig davon, ob der Speicher ausreicht, solange die JVM mit der Speicherbereinigung beginnt , diejenigen, die Objekte sind, die mit schwachen Referenzen verknüpft sind, werden recycelt.

Verwenden Sie nach JDK1.2 java.lang.ref.WeakReference, um schwache Referenzen darzustellen.

PhantomReference (virtuelle Referenz)

Phantomreferenz ist die schwächste Referenzbeziehung. Wenn ein Objekt nur eine Phantomreferenz enthält, hat es überhaupt keine Referenz. Sie kann nach JDK1.2 jederzeit wiederverwendet werden und wird durch die PhantomReference-Klasse dargestellt. Wenn wir uns den Quellcode dieser Klasse ansehen, stellen wir fest, dass sie nur einen Konstruktor und eine get()-Methode hat. )-Methode ist nur die Rückgabe einer Null bedeutet, dass das Objekt niemals über eine virtuelle Referenz abgerufen wird. Virtuelle Referenzen müssen zusammen mit der ReferenceQueue-Referenzwarteschlange verwendet werden.

Das obige ist der detaillierte Inhalt vonWas ist ein Referenztyp in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn