class Test {
public static void main(String arg[]) {
System.out.println("**MAIN METHOD");
System.out.println(Mno.VAL); // SOP(9090);
System.out.println(Mno.VAL + 100); // SOP(9190);
}
}
class Mno {
final static int VAL = 9090;
static {
System.out.println("**STATIC BLOCK OF Mno\t: " + VAL);
}
}
Saya tahu bahwa static
blok dieksekusi ketika kelas dimuat. Tetapi dalam hal ini variabel instan di dalam kelas Mno
adalah final
, karena itu static
blok tidak dieksekusi.
Mengapa demikian? Dan jika saya akan menghapusnya final
, apakah itu akan berfungsi dengan baik?
Memori mana yang akan dialokasikan terlebih dahulu, static final
variabel atau static
blok?
Jika karena final
pengubah akses kelas tidak dimuat, lalu bagaimana variabel mendapatkan memori?