Heim  >  Artikel  >  Java  >  Eine eingehende Analyse gewöhnlicher Codeblöcke, konstruierter Codeblöcke und statischer Codeblöcke in Java

Eine eingehende Analyse gewöhnlicher Codeblöcke, konstruierter Codeblöcke und statischer Codeblöcke in Java

高洛峰
高洛峰Original
2017-01-18 15:03:561347Durchsuche

//Ausführungsreihenfolge: (Priorität von hoch nach niedrig.)

Statischer Codeblock>Mian-Methode>Konstruktionscodeblock>Konstruktionsmethode.

Der statische Codeblock wird nur einmal ausgeführt. Der Konstruktionscodeblock wird jedes Mal ausgeführt, wenn ein Objekt erstellt wird.

1. Gewöhnlicher Codeblock

public static void main(String[] args) {
/*普通代码块:
*直接定义在在方法或语句中出现”{普通代码的执行语句}“的就称为普通代码块。
*普通代码块执行顺序由他们在代码中出现的次序决定--“先出现先执行”
* */
{
  System.out.println("这里是普通代码块A");
}
//new A();
{
  System.out.println("这里是普通代码块B");
}
}

Ausführungsergebnis: Dies ist gewöhnlicher Codeblock A
 Dies ist gewöhnlicher Codeblock B

2. Statische Codeblöcke und konstruierte Codeblöcke

Mit dem Schlüsselwort static in Java deklarierte Codeblöcke.

wird häufig zum Initialisieren von Klassen verwendet. Jeder statische Codeblock wird nur einmal ausgeführt (wenn die Klasse in den Speicher geladen wird, ist die Klasse bereits vorhanden, nachdem die Klasse in den Speicher geladen wurde), da die JVM statischen Code ausführt Beim Laden des Klassencodeblocks wird der statische Codeblock daher vor der Hauptmethode ausgeführt. Wenn die Klasse mehrere statische Codeblöcke enthält, wird der zuerst definierte Code zuerst ausgeführt und der später definierte Code wird ausgeführt

ps:

1 Statische Codeblöcke können in keiner Methode vorhanden sein body.

2 Statische Codeblöcke können nicht direkt auf statische Instanzvariablen und Instanzmethoden zugreifen: Sie müssen direkt in der Klasse definiert werden, ohne den Codeblock des Schlüsselworts hinzuzufügen wird als {}-Konstruktionscodeblock bezeichnet. Der Konstruktionscodeblock wird bei jeder Objekterstellung aufgerufen, und die Ausführungsreihenfolge des Konstruktionscodeblocks hat Vorrang vor dem Klassenkonstruktor

Ausführungsergebnis:

Dies ist ein statischer Codeblock // hat Vorrang vor der Hauptfunktion
public class structure {
{
System.out.println("这里是普通代码块");//所有类中有一个默认的构造函数,这里的代码块为构造代码块,在类中的对象被创建时执行
}
public static void main(String[] args) {
/*普通代码块:
*直接定义在在方法或语句中出现”{普通代码的执行语句}“的就称为普通代码块。
*普通代码块执行顺序由他们在代码中出现的次序决定--“先出现先执行”
* */
{
System.out.println("这里是普通代码块A");
}
new structure();//第二次类加载时静态代码块不执行
//new A();
{
System.out.println("这里是普通代码块B");
}
}
static{
System.out.println("这里是静态代码块");
}
}
Dies ist ein gewöhnlicher Codeblock A

Dies ist ein gewöhnlicher Code block/ /Führen Sie es aus, wenn das Objekt in der Klasse erstellt wird, und führen Sie es bei jeder Erstellung einmal aus. Das Ausführungsergebnis ist:

Hier ist der gewöhnliche Codeblock B


3. Zusammenfassung


Ausführungsergebnisse:

public class structure {
{
System.out.println("这里是普通代码块");
}
public static void main(String[] args) {
{
System.out.println("这里是普通代码块A");
}
//new structure();
//new structure();
new A();
{
System.out.println("这里是普通代码块B");
}
}
static{
System.out.println("这里是静态代码块");
}
}
class A{
static{
System.out.println("这里是A中的普静态代码块1");
}
{
System.out.println("这里是A中的普通代码块1");
}
{
System.out.println("这里是A中的普通代码块2");
}
}

Dies ist der statische Codeblock

Dies ist der gewöhnliche Codeblock A

Hier ist der gewöhnliche statische Codeblock 1 in A
Hier ist der gewöhnliche Codeblock 1 in A

Hier ist der gewöhnliche Codeblock 2 in A

Hier ist der gewöhnlicher Codeblock B

Zusammenfassung der Prioritätsstufe: Statischer Codeblock>Main()>Konstruierter Codeblock

Für eine tiefergehende Analyse von gewöhnlichen Codeblöcken, konstruierten Codeblöcken und statischen Codeblöcken Achten Sie in Java bitte auf die chinesische PHP-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