Trường tĩnh được khởi tạo trong "giai đoạn" khởi tạo của quá trình tải lớp (tải, liên kết và khởi tạo) bao gồm các trình khởi tạo tĩnh và khởi tạo các trường tĩnh của nó. Các bộ khởi tạo tĩnh được thực thi theo thứ tự văn bản như được định nghĩa trong lớp.
Hãy xem xét ví dụ:
public class Test {
static String sayHello() {
return a;
}
static String b = sayHello(); // a static method is called to assign value to b.
// but its a has not been initialized yet.
static String a = "hello";
static String c = sayHello(); // assignes "hello" to variable c
public static void main(String[] arg) throws Throwable {
System.out.println(Test.b); // prints null
System.out.println(Test.sayHello()); // prints "hello"
}
}
Test.b in ra null
vì khi sayHello
được gọi trong phạm vi tĩnh, biến tĩnh a
không được khởi tạo.