Heim  >  Artikel  >  Java  >  Einführung in starke Referenzen und schwache Referenzen in Java

Einführung in starke Referenzen und schwache Referenzen in Java

王林
王林nach vorne
2020-04-10 15:50:452690Durchsuche

Einführung in starke Referenzen und schwache Referenzen in Java

1. Starke Referenz

Wir erstellen normalerweise ein neues Objekt mit einer starken Referenz, wie z. B.

Object obj = new Object();

Selbst wenn der Speicher nicht ausreicht, Die JVM würde lieber einen OutOfMemory-Fehler auslösen, um ein solches Objekt nicht zurückzugewinnen.

(Empfohlenes Video-Tutorial: Java-Video-Tutorial)

2. Soft-Referenz

Wenn ein Objekt nur eine Soft-Referenz hat, wird die Speicher 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.

SoftReference<String> softRef=new SoftReference<String>(str);     // 软引用

Verwendung:

Soft-Referenzen haben in der Praxis wichtige Anwendungen, beispielsweise den Zurück-Button des Browsers. Wenn Sie auf „Zurück“ klicken, wird dann der Inhalt der angezeigten Webseite erneut angefordert oder aus dem Cache abgerufen? Dies hängt von der konkreten Umsetzungsstrategie ab.

(1) Wenn der Inhalt einer Webseite am Ende des Surfens wiederverwendet wird, muss er neu erstellt werden, wenn Sie auf „Zurück“ drücken, um die zuvor besuchte Seite anzuzeigen.

(2) Wenn Sie durchsuchte Webseiten im Speicher speichern, führt dies zu einer großen Speicherverschwendung und sogar zu einem Speicherüberlauf.

Der folgende Code:

Browser prev = new Browser();               // 获取页面进行浏览
SoftReference sr = new SoftReference(prev); // 浏览完毕后置为软引用        
if(sr.get()!=null){ 
    rev = (Browser) sr.get();           // 还没有被回收器回收,直接获取
}else{
    prev = new Browser();               // 由于内存吃紧,所以对软引用的对象回收了
    sr = new SoftReference(prev);       // 重新构建
}

Empfohlene verwandte Tutorials: Java Quick Start

Das obige ist der detaillierte Inhalt vonEinführung in starke Referenzen und schwache Referenzen in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen