suchen
HeimBackend-EntwicklungXML/RSS-TutorialStarke, weiche, schwache und virtuelle Referenzen von Java-Objekten

Wenn in Versionen vor JDK1.2 ein Objekt nicht von einer Variablen referenziert wird, kann das Programm das Objekt nicht mehr verwenden. Das heißt, ein Programm kann ein Objekt nur verwenden, wenn es erreichbar ist. Das ist wie im täglichen Leben: Nach dem Kauf eines Artikels in einem Geschäft behält man ihn, wenn er nützlich ist, andernfalls wirft man ihn in den Mülleimer und wird von der Reinigung abgeholt. ​

Wenn ein Gegenstand in den Mülleimer geworfen wurde, ist es im Allgemeinen unmöglich, ihn aufzuheben und erneut zu verwenden.

Aber manchmal ist die Situation nicht so einfach. Es kann sein, dass Sie auf Gegenstände stoßen, die geschmacklos und geschmacklos sind, und es ist schade, sie wegzuwerfen. Diese Art von Gegenstand ist jetzt nicht mehr nützlich und die Aufbewahrung nimmt Platz in Anspruch. Es ist jedoch nicht kosteneffektiv, ihn sofort wegzuwerfen, da er möglicherweise in der Zukunft verwendet wird. Für solche entbehrlichen Gegenstände gilt als Kompromiss: Wenn zu Hause genügend Platz ist, behalten Sie ihn zuerst zu Hause. Wenn zu Hause nicht genügend Platz vorhanden ist, können Sie die unverzichtbaren Gegenstände nicht unterbringen, selbst wenn Sie den gesamten Müll zu Hause entfernen . Wenn Sie nicht genug Dinge des täglichen Bedarfs haben, werfen Sie diese entbehrlichen Gegenstände weg.

Ab JDK1.2 sind Objektreferenzen in vier Ebenen unterteilt, sodass das Programm den Lebenszyklus des Objekts flexibler steuern kann. Diese vier Ebenen, von hoch nach niedrig, sind: starke Referenz, weiche Referenz, schwache Referenz und virtuelle Referenz.



1. Starkes Zitat
Bei den zuvor in diesem Kapitel vorgestellten Zitaten handelt es sich tatsächlich um starke Zitate, die am häufigsten verwendet werden. Wenn ein Objekt einen starken Bezug hat, ähnelt es einem wesentlichen täglichen Bedarf und der Müllsammler wird es niemals zurückfordern. Wenn nicht genügend Speicherplatz vorhanden ist, würde die Java Virtual Machine lieber einen OutOfMemoryError-Fehler auslösen und das Programm abnormal beenden, als Objekte mit starken Referenzen willkürlich wiederzuverwenden, um das Problem des unzureichenden Speichers zu lösen.


2. Weiche Referenz (SoftReference)

Wenn ein Objekt nur weiche Referenzen hat, ähnelt es den Wegwerfartikeln des täglichen Bedarfs. Wenn genügend Speicherplatz vorhanden ist, wird er vom Garbage Collector nicht zurückgefordert. Wenn nicht genügend Speicherplatz vorhanden ist, wird der Speicher dieser Objekte zurückgefordert. Solange der Garbage Collector es nicht sammelt, kann das Objekt vom Programm verwendet werden. Soft-Referenzen können verwendet werden, um speicherempfindliche Caches zu implementieren.
Soft-Referenzen können in Verbindung mit einer Referenzwarteschlange (ReferenceQueue) verwendet werden. Wenn das durch die Soft-Referenz referenzierte Objekt Garbage Collection ist, fügt die Java Virtual Machine die Soft-Referenz der damit verbundenen Referenzwarteschlange hinzu.

3. Schwache Referenz (WeakReference)
Wenn ein Objekt nur eine schwache Referenz hat, ähnelt es einem Wegwerfartikel des täglichen Bedarfs. Der Unterschied zwischen schwachen Referenzen und weichen Referenzen besteht darin, dass Objekte mit nur schwachen Referenzen einen kürzeren Lebenszyklus haben. Während der Garbage-Collector-Thread den Speicherbereich in seinem Zuständigkeitsbereich scannt, wird, sobald ein Objekt mit nur schwachen Referenzen gefunden wird, dessen Speicher zurückgefordert, unabhängig davon, ob der aktuelle Speicherplatz ausreicht. Da der Garbage Collector jedoch ein Thread mit sehr niedriger Priorität ist, findet er Objekte mit nur schwachen Referenzen möglicherweise nicht unbedingt schnell.
Schwache Referenzen können in Verbindung mit einer Referenzwarteschlange (ReferenceQueue) verwendet werden. Wenn das durch die schwache Referenz referenzierte Objekt durch Müll gesammelt wird, fügt die Java Virtual Machine die schwache Referenz der damit verbundenen Referenzwarteschlange hinzu.


4. Phantomreferenz
Wie der Name schon sagt, ist „Phantomreferenz“ nur dem Namen nach bekannt. Im Gegensatz zu anderen Referenzen bestimmt eine Phantomreferenz nicht den Lebenszyklus des Objekts. Wenn ein Objekt nur Phantomreferenzen enthält, ist es so, als hätte es keine Referenzen und kann jederzeit durch Garbage Collection erfasst werden.
Virtuelle Referenzen werden hauptsächlich verwendet, um die Aktivitäten von Objekten zu verfolgen, die durch Müll gesammelt werden. Ein Unterschied zwischen virtuellen Referenzen, Soft-Referenzen und schwachen Referenzen besteht darin, dass virtuelle Referenzen in Verbindung mit einer Referenzwarteschlange (ReferenceQueue) verwendet werden müssen. Wenn der Garbage Collector die Wiederverwendung eines Objekts vorbereitet und feststellt, dass es noch über eine virtuelle Referenz verfügt, fügt er die virtuelle Referenz der zugehörigen Referenzwarteschlange hinzu, bevor er den Speicher des Objekts wiederverwendet. Das Programm kann feststellen, ob das referenzierte Objekt durch Garbage Collection erfasst wird, indem es ermittelt, ob eine virtuelle Referenz zur Referenzwarteschlange hinzugefügt wurde. Wenn das Programm feststellt, dass der Referenzwarteschlange eine virtuelle Referenz hinzugefügt wurde, kann es die erforderlichen Maßnahmen ergreifen, bevor der Speicher des referenzierten Objekts wiederverwendet wird.


In diesem Buch kann „Zitat“ entweder als Verb oder als Substantiv verwendet werden. Die Leser sollten die Bedeutung von „Zitat“ je nach Kontext unterscheiden.

Im Paket java.lang.ref werden drei Klassen bereitgestellt: SoftReference-Klasse, WeakReference-Klasse und PhantomReference-Klasse, die Soft-Referenzen, schwache Referenzen bzw. Phantom-Referenzen darstellen. Die ReferenceQueue-Klasse stellt eine Referenzwarteschlange dar, die in Verbindung mit diesen drei Referenzklassen verwendet werden kann, um die Aktivitäten der Java Virtual Machine beim Recycling der referenzierten Objekte zu verfolgen. Das folgende Programm erstellt ein String-Objekt, ein ReferenceQueue-Objekt und ein WeakReference-Objekt:



//Erstelle eine starke Referenz

String str = new String("hello");

//Erstellen Sie eine Referenzwarteschlange. ist eine generische Markierung, die angibt, dass die Referenz auf das String-Objekt in der Warteschlange gespeichert ist
ReferenceQueue 🎜>

/ / Erstellen Sie eine schwache Referenz, die auf das „Hallo“-Objekt verweist und mit der RQ-Referenzwarteschlange verknüpft ist

// ist ein generisches Tag, das angibt, dass WeakReference schwach auf den String verweist object
WeakReference wf = new WeakReference(str, rq);

Das Obige ist der Inhalt von starken, weichen, schwachen und virtuellen Referenzen von Java-Objekten. Bitte beachten Sie die chinesische PHP-Website (www.php.cn)!


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
Dekodierung von RSS: Die XML -Struktur von InhaltsfeedsDekodierung von RSS: Die XML -Struktur von InhaltsfeedsApr 17, 2025 am 12:09 AM

Die XML -Struktur von RSS umfasst: 1. XML -Deklaration und RSS -Version, 2. Kanal (Kanal), 3. Artikel. Diese Teile bilden die Grundlage von RSS -Dateien, sodass Benutzer Inhaltsinformationen durch Parsen von XML -Daten erhalten und verarbeiten können.

Wie man XML-basierte RSS-Feeds analysiert und nutztWie man XML-basierte RSS-Feeds analysiert und nutztApr 16, 2025 am 12:05 AM

RSSFeedSusexmltosyndicateContent; ParsingtheminvolvesLoadingxml, NavigatingitsStructure, andextractingData.ApplicationsincludeBuildingNewsaggregatorsandTrackingPodcastepisodes.

RSS -Dokumente: Wie sie Ihren Lieblingsinhalt liefernRSS -Dokumente: Wie sie Ihren Lieblingsinhalt liefernApr 15, 2025 am 12:01 AM

RSS -Dokumente arbeiten, indem sie Inhaltsaktualisierungen über XML -Dateien veröffentlichen, und Benutzer abonnieren und erhalten Benachrichtigungen über RSS -Leser. 1. Inhaltsverlag erstellt und aktualisiert RSS -Dokumente. 2. Der RSS -Leser zugreift regelmäßig XML -Dateien auf und analysiert. 3. Benutzer durchsuchen und lesen aktualisierte Inhalte. Beispiel für die Nutzung: Abonnieren Sie den RSS -Feed von TechCrunch und kopieren Sie einfach den Link zum RSS -Leser.

Bauen von Futtermitteln mit XML: Ein praktischer Anleitung zu RSSBauen von Futtermitteln mit XML: Ein praktischer Anleitung zu RSSApr 14, 2025 am 12:17 AM

Die Schritte zum Erstellen eines RSSFeeds mit XML sind wie folgt: 1. Erstellen Sie das Stammelement und setzen Sie die Version; 2. Fügen Sie das Kanalelement und seine grundlegenden Informationen hinzu; 3. Fügen Sie das Eintragselement hinzu, einschließlich des Titels, des Links und der Beschreibung; 4. Konvertieren Sie die XML -Struktur in eine Zeichenfolge und geben Sie sie aus. Mit diesen Schritten können Sie eine gültige RSSFeed von Grund auf neu erstellen und seine Funktionalität verbessern, indem Sie zusätzliche Elemente wie Erscheinungsdatum und Autoreninformationen hinzufügen.

Erstellen von RSS-Dokumenten: Ein Schritt-für-Schritt-TutorialErstellen von RSS-Dokumenten: Ein Schritt-für-Schritt-TutorialApr 13, 2025 am 12:10 AM

Die Schritte zum Erstellen eines RSS -Dokuments sind wie folgt: 1. Schreiben Sie im XML -Format mit dem Stammelement, einschließlich der Elemente. 2. Hinzufügen usw. Elemente, um Kanalinformationen zu beschreiben. 3. Fügen Sie Elemente hinzu, die jeweils einen Inhaltseintrag darstellen, einschließlich ,,,,,,,,,. 4. Fügen Sie optional Elemente hinzu, um den Inhalt zu bereichern. 5. Stellen Sie sicher, dass das XML -Format korrekt ist, verwenden Sie Online -Tools, um die Leistung zu optimieren und den Inhalt auf dem neuesten Stand zu halten.

Die Rolle von XML in RSS: Die Grundlage von syndizierten InhaltenDie Rolle von XML in RSS: Die Grundlage von syndizierten InhaltenApr 12, 2025 am 12:17 AM

Die Kernrolle von XML in RSS besteht darin, ein standardisiertes und flexibles Datenformat bereitzustellen. 1. Die Struktur- und Markup -Sprachmerkmale von XML machen es für den Datenaustausch und Speicher für den Daten. 2. RSS verwendet XML, um ein standardisiertes Format zu erstellen, um die Inhaltsfreigabe zu erleichtern. 3. Die Anwendung von XML in RSS enthält Elemente, die Futterinhalte wie Titel und Veröffentlichungsdatum definieren. 4. Vorteile umfassen Standardisierung und Skalierbarkeit sowie Herausforderungen umfassen dokumentausführende und strenge Syntaxanforderungen. 5. Zu den Best Practices gehört die Validierung der XML -Gültigkeit, die einfache Haltung, die Verwendung von CDATA und die regelmäßige Aktualisierung.

Von XML zu lesbaren Inhalten: entmystifizierende RSS -FeedsVon XML zu lesbaren Inhalten: entmystifizierende RSS -FeedsApr 11, 2025 am 12:03 AM

RssfeedsarexmldocumentsUTForContentAggregation und Distribution

Gibt es eine RSS -Alternative, die auf JSON basiert?Gibt es eine RSS -Alternative, die auf JSON basiert?Apr 10, 2025 am 09:31 AM

JSONFEED ist eine JSON-basierte RSS-Alternative, die die Einfachheit und Benutzerfreundlichkeit hat. 1) JSONFEED verwendet das JSON -Format, das leicht zu erzeugen und analysieren zu können. 2) Es unterstützt die dynamische Generation und eignet sich für die moderne Webentwicklung. 3) Die Verwendung von JSONFeed kann die Effizienz und die Benutzererfahrung des Inhaltsmanagements verbessern.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

EditPlus chinesische Crack-Version

EditPlus chinesische Crack-Version

Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools

Sicherer Prüfungsbrowser

Sicherer Prüfungsbrowser

Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

SublimeText3 Englische Version

SublimeText3 Englische Version

Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung