Bidang statis diinisialisasi selama "fase" inisialisasi pemuatan kelas (pemuatan, penautan, dan inisialisasi) yang mencakup inisialisasi statis dan inisialisasi bidang statisnya. Penginisialisasi statis dijalankan dalam urutan tekstual seperti yang ditentukan di kelas.
Perhatikan contohnya:
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 mencetak null
karena ketika sayHello
dipanggil dalam lingkup statis, variabel statis a
tidak diinisialisasi.