Was ist eine schwache Referenz?

Eine schwache Referenz ist eine Referenz auf ein Objekt im Speicher, das aufgrund seines Zusammenhangs mit dem Objekt nicht von Müllsammlungsroutinen gereinigt wird. Diese Art von Referenz wird üblicherweise verwendet, um Speicherlecks zu beseitigen, wenn besondere Bedingungen vorliegen, die verhindern, dass eine normale Müllsammlung stattfindet. Programmieralgorithmen, die eine kreisförmige Referenz verwenden oder fremde Informationen in einem Cache oder einer speziellen Struktur verwenden, indem sie schwache Referenzen verwenden. Die Verwendung schwacher Referenzen in diesen Arten von Situationen ermöglicht die Bereinigung ungenutzter Referenzobjekte und deren zugehörigen schwachen Referenzen.

In der Computerprogrammierung wird eine starke Referenz normalerweise standardmäßig erstellt, wenn ein Objekt erstellt wird, und der von dem Objekt besetzte Speicher bleibt, solange die starke Referenz bleibt, lebensfähig. Eine starke Referenz wird annulliert und damit verbundenDas Gedächtnis des Objekts wird kurz nach einer starken Referenz befreit und sein Objekt wird von einem Programm nicht mehr verwendet. In bestimmten Situationen, wie z. B. Socket-Programmier- oder Bildmanipulationsanwendungen, verfügen die Klassen, die zum Erstellen von Arbeitsobjekten verwendet werden, nicht integriert, um zusätzliche Informationen zu speichern, die von einer bestimmten Anwendung erforderlich sind. Die zusätzlichen Details für transiente Objekte wie Verbindungen oder Bilder müssen in ergänzenden Cache -Objekten gespeichert und durch Referenzen mit den transienten Objekten verknüpft werden. Wenn eine schwache Referenz anstelle einer starken Referenz verwendet wird, werden die zusätzlichen Informationen nicht durch die Referenz gebunden und können vom Müllsammler aus dem Cache entfernt werden, sobald das Referenzobjekt als nicht resultierbar markiert wurde.

Schwache Referenzklassen sind normalerweise in Sprachen erhältlich, die durch Müllsammlungssubsysteme, einschließlich Java, Python, Perl, C#und dem .NET -Framework, erweitert werden. In C ++ sind Programmierer jedoch typischerweise resPonsible für die Sicherstellung des Speichers. Diese Sprache hat eine intelligente Zeigerklasse implementiert, die einige der gleichen Funktionen liefert, die schwache Referenzen und Müllsammlung liefern, was dazu beiträgt, Speicherlecks zu reduzieren, die durch unsachgemäße Zeigerreinigung verursacht werden.

Um das Gedächtnismanagement weiter zu erleichtern, können Sprachen mit Müllsammlungsanlagen zusätzlich die Funktionalität einer Sprache verbessern, indem sie andere Referenzen als die starke oder schwache Referenz liefern. Datentypen wie weiche Referenzen und Phantomreferenzen können in diese Sprachen aufgenommen werden, wodurch unterschiedliche Niveaus der Recapture- oder Deallocation -Benachrichtigung zu ermöglichen. Programmierer, die Sprachen mit automatisierter Müllsammlung verwenden, sollten sich mit allen verfügbaren Referenzklassen vertraut machen, um die Anwendungsleistung zu verbessern.

ANDERE SPRACHEN

War dieser Artikel hilfreich? Danke für die Rückmeldung Danke für die Rückmeldung

Wie können wir helfen? Wie können wir helfen?