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);
    }
}
ฉันรู้ว่าstaticบล็อกทำงานเมื่อโหลดคลาส แต่ในกรณีนี้ตัวแปรอินสแตนซ์ภายในคลาสMnoคือfinalเนื่องจากว่าstaticบล็อกไม่ทำงาน
เหตุผลที่เป็นเช่นนั้น? แล้วถ้าจะเอาออกfinalมันจะใช้ได้ไหม
หน่วยความจำใดจะถูกจัดสรรก่อนstatic finalตัวแปรหรือstaticบล็อก?
หากเนื่องจากfinalตัวแก้ไขการเข้าถึงคลาสไม่ได้รับการโหลดตัวแปรจะรับหน่วยความจำได้อย่างไร?