Heim Backend-Entwicklung XML/RSS-Tutorial Starke, weiche, schwache und virtuelle Referenzen von Java-Objekten

Starke, weiche, schwache und virtuelle Referenzen von Java-Objekten

Dec 20, 2016 pm 01:34 PM

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 (m.sbmmt.com)!


Erklärung dieser Website
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

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)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Top 10 Währungshandelsplattform Virtuelle Währungs -Apps Top 10 Top 10 zuverlässige und nützliche Währungshandel -Apps Top 10 Währungshandelsplattform Virtuelle Währungs -Apps Top 10 Top 10 zuverlässige und nützliche Währungshandel -Apps Feb 17, 2025 pm 03:57 PM

Mit dem florierenden Markt für virtuelle Währungen ist die Auswahl einer zuverlässigen Handelsplattform von entscheidender Bedeutung. In diesem Artikel wird 10 hoch angesehene Handelsplattformen für virtuelle Währung empfohlen, darunter Binance, Coinbase, FTX, Huobi, OKX, Gemini, Kraken, Bitstamp, BitTrex und Kucoin. Faktoren wie Sicherheit, Liquidität, Ausgaben, Auswahl der Vermögenswerte und Benutzererfahrung sind bei der Auswahl einer Handelsplattform von entscheidender Bedeutung. Dieser Artikel bietet Ihnen maßgebliche Referenz und hilft Ihnen dabei, die Handelsplattform zu finden, die Ihren Anforderungen am besten entspricht.

Ranking der zehn Top -Währungshandelsplattformen im Währungskreis (die Top Ten Virtual Currency Trading Apps, die 2025 empfohlen werden) Ranking der zehn Top -Währungshandelsplattformen im Währungskreis (die Top Ten Virtual Currency Trading Apps, die 2025 empfohlen werden) Feb 20, 2025 pm 05:57 PM

Empfohlene beste virtuelle Währungshandelsplattformen: Binance: Das größte Transaktionsvolumen, das meiste Geld wird unterstützt und das Ökosystem ist perfekt. OKX: Advanced Trading Engine, Rich Trading Tools und leistungsstarke derivative Handelsplattform; Gate.io: Die größte Anzahl von Kryptowährungen, bequeme Benutzeroberflächen und innovative Funktionen; Bitget: Fokus auf Derivathandel, leitende soziale Handelsfunktionen und starke Liquidität; Coinbase: Die größte, konform und geeignet für Anfänger in den USA.

Die zehn Top -Apps für digitale Währung in der Currency Circle Exchange -Rangliste im Jahr 2025 Die zehn Top -Apps für digitale Währung in der Currency Circle Exchange -Rangliste im Jahr 2025 Feb 27, 2025 pm 06:42 PM

Unter den zehn besten Anwendungen für digitale Währungstörungen sind die Top Drei: Binance (Rich -Produktangebote und fortschrittliche Handelsinstrumente), OKX (der weltweit führenden Handelsplattform für Kryptowährungsderivate) und Gate.io (unterstützt mehr als 1.000 Handel mit digitaler Währung). Bei der Auswahl einer Börse sollten Sie wichtige Schritte wie Sicherheit, Handelstypen, Transaktionsgebühren, Benutzererfahrung, Ruf und Community berücksichtigen.

Top 10 Safe Virtual Currency Exchange Autoritative Liste von 2025 Rangliste für digitale Währung Handelshandel Top 10 Safe Virtual Currency Exchange Autoritative Liste von 2025 Rangliste für digitale Währung Handelshandel Feb 21, 2025 pm 02:24 PM

Top 10 sicherste virtuelle Währungsbörsen im Jahr 2025: Binance; Okx; Gate.io; Bitget; Huobi; Kucoin; Krake; Bybit; Crypto.com; Coinbase.

Welche Plattformen können virtuelle Münzen handeln? Welche Plattformen können virtuelle Münzen handeln? Mar 12, 2025 pm 07:30 PM

In diesem Artikel werden virtuelle Währungshandelsplattformen mit höheren umfassenden Ranglisten in der Welt eingeführt, darunter Binance, Gate.io, Ouyi OKX, Coinbase, Kraken, Bitfinex, Kucoin, Bitbit und Huobi und Bitmex. Diese Plattformen haben ihre eigenen Vorteile hinsichtlich der Transaktionstiefe, der Benutzererfahrung, der Sicherheit, der Einhaltung usw.. Die Auswahl einer geeigneten Plattform erfordert eine umfassende Überlegung, die auf eigener Handelserfahrung, Risikotoleranz und Investitionspräferenzen basiert. Klicken Sie auf das Lesen, um mehr über diese Top -Handelsplattformen der virtuellen Währung zu erfahren, um Ihnen dabei zu helfen, digitale Vermögenswerte sicher und effizient zu handeln

Top 10 Austausch -Apps Virtual Currency Apps im Jahr 2025 (die neuesten Top -10 -Ranglisten des Währungsaustauschs) Top 10 Austausch -Apps Virtual Currency Apps im Jahr 2025 (die neuesten Top -10 -Ranglisten des Währungsaustauschs) Feb 17, 2025 pm 04:27 PM

Im Jahr 2025 wird erwartet, dass der Markt für virtuelle Währung weiterhin floriert, während führende Börsen eine Vielzahl von Diensten bieten, um die Benutzerbedürfnisse zu erfüllen. Unter ihnen befindet sich Binance, die für seine breite Palette von Handelspaaren und niedrigen Gebühren viel Aufmerksamkeit erregt hat.

Top 10 Top -Ranglisten für Virtual Currency Trading App in 2025 Globale Top -10 -Währungshandelsplattformen Top 10 Top -Ranglisten für Virtual Currency Trading App in 2025 Globale Top -10 -Währungshandelsplattformen Feb 12, 2025 pm 04:48 PM

Die zehn zuverlässigsten Handelsplattformen für virtuelle Währung im Jahr 2025: Binance, OKX, Gate.io, Huobi Global, Bitfinex, Kraken, Gemini, Bybit, Kucoin, Crypto.com. Diese Plattformen bieten eine breite Palette von Optionen für virtuelle Währung, niedrige Transaktionsgebühren, erweiterte Handelstools und exzellenten Kundenbetreuung.

Top 10 Apps Virtual Currency Trading Apps Autoritative Rankings im Jahr 2025 Top 10 Apps Virtual Currency Trading Apps Autoritative Rankings im Jahr 2025 Mar 07, 2025 pm 06:18 PM

Die Rangliste der zehn Top-Währungs-Apps im Jahr 2025 sind: 1. Altersunterstützung;

See all articles