在Java中,成員變量的初始化順序是根據它們在類中的聲明順序來確定的。當類被加載時,構造函數會按照成員變量在代碼中出現的順序依次初始化它們。需要注意的是,靜態變量(使用static關鍵字聲明的變量)會在非靜態變量之前初始化。
以下是一個簡單的例子,說明了成員變量初始化順序:
public class MyClass {
// 非靜態變量
String nonStaticVar1 = "Non-static variable 1";
int nonStaticVar2 = 42;
// 靜態變量
static String staticVar1 = "Static variable 1";
static int staticVar2 = 100;
public static void main(String[] args) {
MyClass obj = new MyClass();
System.out.println(obj.nonStaticVar1); // 輸出:Non-static variable 1
System.out.println(obj.nonStaticVar2); // 輸出:42
System.out.println(MyClass.staticVar1); // 輸出:Static variable 1
System.out.println(MyClass.staticVar2); // 輸出:100
}
}
在這個例子中,我們可以看到成員變量的初始化順序是按照它們在類中的聲明順序進行的。首先初始化非靜態變量,然后初始化靜態變量。在非靜態變量中,先初始化nonStaticVar1
,再初始化nonStaticVar2
。在靜態變量中,先初始化staticVar1
,再初始化staticVar2
。