Als «weak-references» getaggte Fragen

Eine schwache Referenz ist eine, die keinen Anspruch auf Eigentum erhebt. Eine schwache Referenz behält eine Referenz auf das betreffende Objekt bei, während es sich im Speicher befindet, hindert das Speicherverwaltungssystem jedoch nicht daran, den zugehörigen Speicher zurückzugewinnen, wenn das referenzierte Objekt ansonsten nicht mehr benötigt wird. Viele Sprachen bieten oder unterstützen verschiedene Ebenen schwacher Referenzen, wie Swift, Objective-C, Java, C #, Python, Perl und Lisp.



7
Was ist der Unterschied zwischen einer schwachen Referenz und einer nicht besessenen Referenz?
Swift hat: Starke Referenzen Schwache Referenzen Nicht besessene Referenzen Wie unterscheidet sich eine nicht besessene Referenz von einer schwachen Referenz? Wann ist es sicher, eine nicht im Besitz befindliche Referenz zu verwenden? Sind nicht besessene Referenzen ein Sicherheitsrisiko wie baumelnde Zeiger in C / C ++?






4
Grundlegendes zu Javas Referenzklassen: SoftReference, WeakReference und PhantomReference
Kann jemand den Unterschied zwischen den drei Referenzklassen erklären (oder einen Link zu einer netten Erklärung posten)? SoftReference> WeakReference> PhantomReference, Aber wenn ich würde alle nutzen? Warum gibt es ein WeakHashMapaber nein SoftHashMapoder PhantomHashMap? Und wenn ich den folgenden Code verwende ... WeakReference<String> ref = new WeakReference<String>("Hello!"); if (ref != …

4
Was ist der Unterschied zwischen einer __schwachen und einer __blockischen Referenz?
Ich lese die Dokumentation von Xcode und hier ist etwas, das mich verwirrt: __block typeof(self) tmpSelf = self; [self methodThatTakesABlock:^ { [tmpSelf doSomething]; }]; Folgendes wird aus der Dokumentation kopiert: Ein Block bildet einen starken Verweis auf Variablen, die er erfasst. Wenn Sie selfinnerhalb eines Blocks verwenden, bildet der Block …


11
Warum kann das Schlüsselwort "schwach" nur auf Klassen- und klassengebundene Protokolltypen angewendet werden?
Wenn ich Variablen wie weakin Swift deklariere , erhalte ich manchmal die Fehlermeldung von Xcode: 'schwach' kann nur auf klassen- und klassengebundene Protokolltypen angewendet werden Ich habe mich nur gefragt, warum das Schlüsselwort weaknur auf Klassen- und klassengebundene Protokolltypen angewendet werden kann. Was ist der Grund dafür?

3
Schwache Referenzvorteile
Kann jemand die Hauptvorteile verschiedener Arten von Referenzen in C # erklären? Schwache Referenzen Weiche Referenzen Phantomreferenzen Starke Referenzen. Wir haben eine Anwendung, die viel Speicher verbraucht, und wir versuchen festzustellen, ob dies ein Bereich ist, auf den wir uns konzentrieren müssen.


2
OutOfMemoryException trotz Verwendung von WeakHashMap
Wenn Sie nicht aufrufen System.gc(), löst das System eine OutOfMemoryException aus. Ich weiß nicht, warum ich System.gc()explizit anrufen muss; Die JVM sollte sich gc()selbst nennen , oder? Bitte beraten. Folgendes ist mein Testcode: public static void main(String[] args) throws InterruptedException { WeakHashMap<String, int[]> hm = new WeakHashMap<>(); int i = …
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.