// Ausführungsreihenfolge: (Priorität von hoch nach niedrig.)
Statischer Codeblock> Mian -Methode> CODE -Block konstruieren> Konstrukt -Methode.
Der statische Codeblock wird nur einmal ausgeführt. Der konstruierte Codeblock wird jedes Mal ausgeführt, wenn das Objekt erstellt wird.
1. Gewöhnliche Codeblöcke
public static void main (string [] args) {/ * gewöhnlicher Codeblock: * Direkt definiert in der Methode oder Anweisung "{ordinäre Code -Ausführungsanweisung}" wird in der Methode oder Anweisung angezeigt. Es wird als gewöhnlicher Codeblock bezeichnet. *Die Reihenfolge der Ausführung gewöhnlicher Codeblöcke wird durch die Reihenfolge festgelegt, in der sie im Code erscheinen - "Zuerst erscheint zuerst" */{System.out.println ("Hier ist gewöhnlicher Code -Block A");} // new a (); {System.out.println ("Hier ist gewöhnliche Code -Block B"); Ausführungsergebnis: Hier ist der normale Codeblock a
Hier ist der normale Codeblock B
2. Statische Codeblöcke und Konstruktionscodeblöcke
Codeblöcke, die mit dem statischen Schlüsselwort in Java deklariert sind.
Es wird oft verwendet, um Klassen zu initialisieren. Jeder statische Codeblock wird nur einmal ausgeführt (die Klasse wird beim Laden im Speicher ausgeführt, und die Klasse existiert bereits nach dem Laden der Klasse im Speicher). Da das JVM beim Laden der Klasse statische Codeblöcke ausführt, wird der statische Codeblock vor der Hauptmethode ausgeführt. Wenn die Klasse mehrere statische Codeblöcke enthält, wird sie zuerst durch "den definierten Code zuerst ausgeführt, und dann wird der definierte Code später ausgeführt.
PS:
1 statische Codeblöcke können in keiner Methodekörper existieren.
2 Statische Codeblöcke können nicht direkt auf statische Instanzvariablen und Instanzmethoden zugreifen und über das Instanzobjekt der Klasse zugegriffen werden müssen.
Konstruktionsblock: Ein Codeblock, der direkt in der Klasse definiert ist und kein statisches Schlüsselwort hat, wird als {} Konstruktionscodeblock bezeichnet.
Der Konstruktorcodeblock wird beim Erstellen eines Objekts aufgerufen, und jedes Mal, wenn das Objekt erstellt wird, wird er aufgerufen, und die Ausführungsreihenfolge des Konstruktorcodeblocks hat Vorrang vor dem Klassenkonstruktor.
öffentliche Klassenstruktur {{System.out.println ("Hier ist ein normaler Codeblock"); // Es gibt einen Standardkonstruktor in allen Klassen. Der Codeblock hier ist ein Konstruktor -Code -Block, der ausgeführt wird, wenn das Objekt in der Klasse erstellt wird} öffentliche statische void main (String [] args) {/ * gewöhnlicher Codeblock: * Direkt definiert in der Methode oder Anweisung "{Ausführungsanweisung des gewöhnlichen Code}" wird in der Methode oder Anweisung angezeigt. *Die Reihenfolge der Ausführung gewöhnlicher Codeblöcke wird durch die Reihenfolge festgelegt, in der sie im Code erscheinen - "Zuerst erscheint zuerst" */{System.out.println ("Hier ist gewöhnlicher Codeblock A");} new struktur (); // Der statische Code -Block wird nicht ausgeführt, wenn die zweite Klasse laden // New A (). B ");}} static {System.out.println (" Hier ist statischer Codeblock ");}} Ausführungsergebnisse:
Hier ist der statische Codeblock // Vorzug für die Hauptfunktion hier ist der normale Codeblock a
Hier ist ein normaler Codeblock // Objekt in der Klasse wird ausgeführt, wenn er erstellt wird. Jedes Mal, wenn es erstellt wird, wird die neue Struktur () hinzugefügt; Das Ausführungsergebnis ist:
Hier ist der normale Codeblock B
3. Zusammenfassung
öffentliche Klassenstruktur {{System.out.println ("Hier ist ein normaler Codeblock");} public static void main (String [] args) {{System.out.println ("Hier ist ein normaler Code -Block a");} // neue Struktur (); // neue Struktur (); neue a (). B ");}} static {System.out.println (" Hier ist ein statischer Codeblock ");}} Klasse A {static {System.out.println (" Hier ist normaler statischer Code -Block 1 in a ");} {System.out.println (" hier ist normaler Code -Block 1 in a ") {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{system.us A");}} Ausführungsergebnisse:
Hier ist der statische Codeblock hier ist der normale Codeblock a
Hier ist der normale statische Code Block 1 in a
Hier ist der normale Codeblock 1 in a
Hier ist der normale Codeblock 2 in a
Hier ist der normale Codeblock B
Prioritätszusammenfassung: statischer Codeblock> main ()> CODE -Block konstruieren