2009-12-02 13 views
22

यह क्या है?जावा कोई नाम स्थिर विधि

public class ABC { 
    public ABC() { 
     System.out.println("world"); 
    } 
    static { 
     System.out.println("hello"); 
    } 
} 

प्रिंट होगा: हैलो दुनिया

मैं वास्तव में इस बात को समझ नहीं है, या विधि स्थिर कोड है कि किस तरह की।

उत्तर

48

इसे "स्थैतिक प्रारंभिक ब्लॉक" कहा जाता है।

यह तब चलता है जब कक्षा पहली बार लोड होती है; सिर्फ एक बार।

उदाहरण के लिए, प्रत्येक बार कक्षा को तत्काल चलाए जाने पर एक कन्स्ट्रक्टर चलाएगा; स्थैतिक ब्लॉक केवल एक बार चलता है, जब इसे पहली बार वीएम/कक्षा लोडर द्वारा स्थिर रूप से लोड किया जाता है।

+0

स्थिर प्रारंभिक के जेएलएस विवरण के लिए [यह] (http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.7) देखें और [यह] (प्रारंभिकरण के क्रम के जेएलएस विवरण के लिए http://docs.oracle.com/javase/specs/jls/se7/html/jls-12.html#jls-12.4.2), जो महत्वपूर्ण हो सकता है। – selig

7

मुझे लगता है कि प्रत्येक बार जब क्लासलोडर कक्षा को लोड करता है तो स्थिर ब्लॉक को ठीक करने के लायक है। इसका मतलब है कि यदि आपके पास एक से अधिक क्लासलोडर हैं, तो ब्लॉक एक से अधिक बार निष्पादित कर सकता है।

संबंधित मुद्दे