Heim >Java >javaLernprogramm >Warum statische Initialisierungsblöcke in Java verwenden?

Warum statische Initialisierungsblöcke in Java verwenden?

Barbara Streisand
Barbara StreisandOriginal
2024-12-20 17:46:14870Durchsuche

Why Use Static Initialization Blocks in Java?

Statische Initialisierungsblöcke: Warum ein separater Block?

Vielleicht sind Sie in Java auf das Konzept der „statischen Initialisierungsblöcke“ gestoßen. Sie sind für Szenarien gedacht, in denen die Zuweisung von Werten zu statischen Feldern nicht in einer einzigen Zeile erfolgen kann. Sie fragen sich jedoch vielleicht, warum für diesen Zweck ein spezieller Block benötigt wird.

In Java werden nicht statische Blöcke jedes Mal ausgeführt, wenn eine neue Instanz der Klasse erstellt wird. Statische Blöcke hingegen werden nur einmal ausgeführt, wenn die Klasse selbst initialisiert wird. Dies gilt unabhängig davon, wie viele Objekte dieser bestimmten Klasse Sie erstellen.

Betrachten Sie das folgende Beispiel:

public class Test {

    static {
        System.out.println("Static");
    }

    {
        System.out.println("Non-static block");
    }

    public static void main(String[] args) {
        Test t = new Test();
        Test t2 = new Test();
    }
}

Ausgabe:

Static
Non-static block
Non-static block

In diesem Beispiel Der statische Block mit „Static“ wird nur einmal ausgeführt, wenn die Testklasse zum ersten Mal geladen wird. Der nicht statische Block mit „Nicht statischer Block“ wird jedes Mal ausgeführt, wenn eine neue Instanz (t und t2) der Testklasse erstellt wird.

Daher können Sie mit einem statischen Initialisierungsblock bestimmte Aktionen ausführen oder weisen Sie statischen Feldern während der Klasseninitialisierung nur einmal Werte zu, während nicht statische Blöcke für Aufgaben verwendet werden, die jedes Mal ausgeführt werden müssen, wenn ein Objekt der Klasse instanziiert wird.

Das obige ist der detaillierte Inhalt vonWarum statische Initialisierungsblöcke in Java verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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