Friday, 15 February 2013

java - Static block execution before main method -


इस सवाल का पहले से ही एक उत्तर है: < / P>

  • 8 जवाब

वर्ग के स्थैतिक ब्लॉक निष्पादित करता है उसी वर्ग की मुख्य विधि से पहले?

उदाहरण:

  सार्वजनिक वर्ग उदाहरण {स्थिर {System.out.println ("hi"); } सार्वजनिक स्थिर शून्य मुख्य (स्ट्रिंग [] आर्ग्स) {System.out.println ("बाय"); }}  

इस प्रोग्राम का आउटपुट है:

हाय

बाय

मेरा संदेह है कि आउटपुट क्यों नहीं था:

बाय

जावा किसी भी विधि (या किसी भी उदाहरण बनाया है) से पहले एक वर्ग के स्थिर intializers चलाएगा। यह बताता है:

एक वर्ग या इंटरफ़ेस प्रकार टी को निम्न में से किसी एक की पहली घटना के तुरंत आरंभ किया जाएगा:

  • टी एक वर्ग और टी का एक उदाहरण बनाया जाता है।

  • टी द्वारा घोषित एक स्थिर विधि लागू है।

  • एक स्थिर फ़ील्ड टी द्वारा घोषित किया गया है।

  • टी द्वारा घोषित एक स्थैतिक फ़ील्ड का उपयोग किया जाता है और फ़ील्ड एक स्थिर चर (§4.12.4) नहीं है।

  • टी एक शीर्ष स्तर वर्ग (§7.6) और एक जोर बयान (§14.10) टी (§8.1.3) के भीतर lexically नेस्टेड है।

प्रारंभिक आदेश का एक हिस्सा है:

  1. अगला, वर्ग चर प्रारंभिक निष्पादित करें और वर्ग के स्थिर प्रारंभिक, या क्षेत्र को निष्पादित करें इंटरच के शुरुआती, शाब्दिक क्रम में, हालांकि वे एक ही ब्लॉक थे।

इसलिए, स्थिर प्रारंभकर्ता पहले चलाया जाता है, और "हाय" मुद्रित होता है; तब मुख्य को "बाय" प्रिंट करने के लिए कहा जाता है।


No comments:

Post a Comment