Führen Sie den folgenden Code aus und beobachten Sie die Ergebnisse:
package com.test; public class HelloB extends HelloA { public HelloB() { } { System.out.println("I'm B class"); } static { System.out.println("static B"); } public static void main(String[] args) { new HelloB(); } } class HelloA { public HelloA() { } { System.out.println("I'm A class"); } static { System.out.println("static A"); } }
Die Ergebnisse sind wie folgt:
static A static B I'm A class I'm B class
Analyse:
1. Statischer Codeblock: Wird während des Initialisierungsschritts des dritten Schritts des Klassenladevorgangs ausgeführt. Der Hauptzweck besteht darin, Klassenvariablen Anfangswerte zuzuweisen.
2. Konstruktionscodeblock: Er ist unabhängig und muss zur Ausführung an einen Träger angehängt werden. Java setzt den Konstruktionscodeblock vor jede Konstruktionsmethode, um einige allgemeine Instanzvariablen zu instanziieren und die Codemenge zu reduzieren . .
3. Konstruktionsmethode: Wird zum Instanziieren von Variablen verwendet.
Zusammenfassung:
1 ist auf Klassenebene, 2 und 3 sind auf Instanzebene, sodass 1 Vorrang vor 2 und 3 hat.
Ihre Ausführung Die Reihenfolge ist 1>2>3;
Die obige detaillierte Erläuterung der statischen Codeblöcke, Konstruktionscodeblöcke und Konstruktionsmethoden in Java ist der gesamte vom Herausgeber geteilte Inhalt. Ich hoffe, dass er Ihnen eine Referenz geben kann. und ich hoffe, dass jeder Duoduo die chinesische PHP-Website unterstützt.
Ausführlichere Erläuterungen zu statischen Codeblöcken, Konstruktionscodeblöcken und Konstruktionsmethoden in Java finden Sie auf der chinesischen PHP-Website!