更新時間:2022-04-24 10:33:00 來源:動力節點 瀏覽1305次
在本教程中,動力節點小編將告訴大家 Java 中各種初??始化塊(如靜態塊、初始化塊和構造函數)的執行順序是什么。
大多數時候,在面試中會問這樣一個問題,以測試候選人對 Java 基礎的基本知識。
讓我們開始教程。
在 Java 中,我們有各種類型的初始化塊,它們是靜態塊、初始化塊和實例初始化塊。然后有一個構造函數。
讓我們對每種類型的塊做一個簡單的介紹。
每當類第一次在 JVM 中加載時,靜態初始化塊就會運行。
初始化塊
初始化塊類似于靜態初始化塊,但其中沒有使用靜態關鍵字。它只是 { start 和 end } 大括號內的一個塊。初始化塊將按照它們在程序中出現的順序運行。
簡單地說,它包含在創建實例時始終執行的代碼。初始化塊的主要目的是聲明或初始化類中存在的各種構造函數的公共部分。
實例初始化塊
實例初始化塊是在初始化類時和調用構造函數之前執行的塊。主要用于初始化實例變量。這種類型的塊在構造函數之前執行,并且在每次創建類的對象時運行。
這些是Java中的各種初始化塊,現在我們將討論這些塊在Java程序中的執行順序是什么。
但是這里要注意的重要一點是,如果這些是兩個或多個靜態/初始化程序塊,那么它們將按照它們在源代碼中出現的順序執行。
讓我們通過一個例子來理解所有這些概念。
package com.initializationializationblocks;
public class InitializationOrderExample {
InitializationOrderExample(int x) {
System.out.println("ONE argument constructor");
}
InitializationOrderExample() {
System.out.println("No argument constructor");
}
static {
System.out.println("1st static initialization");
}
{
System.out.println("1st instance initialization");
}
{
System.out.println("2nd instance initialization");
}
static {
System.out.println("2nd static initialization");
}
public static void main(String[] args) {
new InitializationOrderExample();
new InitializationOrderExample(800);
}
}
輸出
1st static initialization
2nd static initialization
1st instance initialization
2nd instance initialization
No argument constructor
1st instance initialization
2nd instance initialization
ONE argument constructor
這就是本教程的全部內容。希望您喜歡本教程并能夠理解 Java 中的各種初始化塊及其執行順序。如果大家想了解更相關知識,不妨來關注一下動力節點的Java教程,里面的課程內容細致全面,通俗易懂,適合沒有基礎的小伙伴學習,希望對大家能夠有所幫助哦。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習