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
অ্যাক্সেস মডিফায়ারের কারণে ক্লাসটি লোড হয় না, তবে ভেরিয়েবল কীভাবে মেমরি পেতে পারে?