नहीं कहा जा रहा है जो क्या हो रहा है?स्टेटिक ब्लॉक को
public class MagicFinal {
public static void main(String[] args) {
System.out.println(A.s);
}
}
class A {
static {
System.out.println("class has been loaded");
}
public static final String s = "final";
public static final Integer i = 3;
}
कंसोल:
अंतिम
यह क्या है? मुझे समझ में नहीं आता कि कक्षा क्यों लोड नहीं हुई है, मुझे पता है कि वर्ग हमेशा पहली कॉल पर लोड होते हैं। फ़ील्ड s
स्ट्रिंग के पूल में है, मुझे लगता है कि अंतिम संशोधक जादू है।
अगर मैं अंतिम संशोधक (public static String s = "final"
) को हटा मैं मिल जाएगा
कंसोल:
वर्ग
लोड किया गया है अंतिम
नोट: मैं बदल गया है क्षेत्र i
: public static final int i = 3;
और इसे कंसो में दिखाएं le। मुझे स्ट्रिंग स्थिति की तरह ही मिला। क्यूं कर?
ठीक है, बहुत बहुत धन्यवाद !! Int के बारे में क्या ?? सार्वजनिक स्थिर अंतिम int i = 3; // wont लेखन वर्ग सार्वजनिक स्थिर अंतिम पूर्णांक i = 3 लोड किया गया है; // लेखन वर्ग – idmitriev
लोड किया गया है कृपया संकलन-समय निरंतर अभिव्यक्ति की परिभाषा पढ़ें जिसे मैंने अपने उत्तर में जोड़ा है। 'int' एक आदिम मान है, 'स्ट्रिंग' संदर्भ-टाइप किए गए मान का एकमात्र विशेष मामला है जो निरंतर अभिव्यक्ति में शामिल हो सकता है, और' इंटीगर 'न तो है। –
@marko - क्या आप मुझे बता रहे हैं कि कक्षा ए बिल्कुल लोड नहीं हो रहा है ?? या यह आलसी शुरुआत का मामला है ??? – TheLostMind