class Hello12 {
static int b = 10;
static {
b = 100;
}
}
class sample {
public static void main(String args[]) {
System.out.println(Hello12.b);
}
}
कोड ऊपर चल रहा है पर क्योंकि जब मैंने Hello क्लास कहा जाता है, स्थिर ब्लॉक पहले से 100 ख के मूल्य की स्थापना और यह प्रदर्शित निष्पादित किया जाता है उत्पादन 100 के रूप में आता है। लेकिन जब मैं इस कोड लिखने:जावा वर्गों और स्थिर ब्लॉक
class Hello12 {
static {
b = 100;
}
static int b = 10;
}
class sample {
public static void main(String args[]) {
System.out.println(Hello12.b);
}
}
यहाँ उत्पादन 10. मैं 100 के रूप में जवाब की उम्मीद कर रहा हूँ क्योंकि एक बार स्थिर ब्लॉक निष्पादित किया जाता है यह 100 तो जब मुख्य में() के रूप में मूल्य ख दिया के रूप में आता, मैंने कहा हैलो.बी इसे बी (= 100) को संदर्भित किया जाना चाहिए था। दोनों कोडों में बी को आवंटित स्मृति कैसे दी जाती है?
+1। अभ्यास में, 'अंतिम' का प्रयोग करें। – djechlin