Heim > Java > javaLernprogramm > Hauptteil

Was ist die Ursache für den Speicherverlust der inneren Java-Klasse?

WBOY
Freigeben: 2023-04-21 23:40:17
nach vorne
1181 Leute haben es durchsucht

Ursachenanalyse

1 Wenn auf die anonyme innere Klasse nicht verwiesen wird, besteht die Möglichkeit einer Wiederverwertung, wenn die Objekte der anonymen inneren Klasse aufgebraucht sind.

2. Wenn die innere Klasse nur in der äußeren Klasse referenziert wird und nicht mehr auf die äußere Klasse verwiesen wird, können die äußere Klasse und die innere Klasse über GC recycelt werden.

Wenn andere Klassen als die äußere Klasse auf die innere Klassenreferenz verweisen, können die innere Klasse und die äußere Klasse nicht von GC recycelt werden. Auch wenn die äußere Klasse nicht referenziert wird, hat die innere Klasse immer noch einen Verweis auf die äußere Klasse Klasse).

Instanzen

public class ClassOuter {
 
    Object object = new Object() {
        public void finalize() {
            System.out.println("inner Free the occupied memory...");
        }
    };
 
    public void finalize() {
        System.out.println("Outer Free the occupied memory...");
    }
}
 
public class TestInnerClass {
    public static void main(String[] args) {
        try {
            Test();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
 
    private static void Test() throws InterruptedException {
        System.out.println("Start of program.");
 
        ClassOuter outer = new ClassOuter();
        Object object = outer.object;
        outer = null;
 
        System.out.println("Execute GC");
        System.gc();
 
        Thread.sleep(3000);
        System.out.println("End of program.");
    }
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWas ist die Ursache für den Speicherverlust der inneren Java-Klasse?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!