मैं जावा में नौसिखिया हूं और मेरे पास एक प्रश्न है। क्या क्लास में स्टैटिक मेथड को कॉल करने से यह क्लास इंस्टेंट हो जाती है? मेरा मतलब है, अगर मैं एक कक्षा में मौजूद एक स्थिर विधि को कॉल करता हूं, तो क्या JVM स्मृति में इस वर्ग का उदाहरण बनायेगा? यदि मेरे पास X नामक एक वर्ग है, और Y नामक एक वर्ग है, तो कक्षा Y में एक स्थिर विधि M है जो Z नामक एक अन्य वर्ग को त्वरित करती है जो थ्रेड का विस्तार करती है

public class X {
    public static void main(String[] args) {
        Y.M();
    }
}
public class Y {
    static void M() {
        new Z().start();
    }
}
class Z extends Thread {      
   public void run() {   
     ConnectToServer();
    }
}

अब Y I के कितने उदाहरण स्मृति में होंगे?

-5
MM.Linuxer 6 अक्टूबर 2018, 23:39

1 उत्तर

सबसे बढ़िया उत्तर

अगर मैं एक स्थिर विधि को बुलाता हूं जो एक वर्ग में मौजूद है तो क्या JVM स्मृति में इस वर्ग का एक उदाहरण बनाएगा?

नहीं, स्थैतिक विधियाँ वर्ग-स्तरीय विधियाँ हैं। उन्हें किसी ऑब्जेक्ट (= एक वर्ग का उदाहरण) पर नहीं कहा जाता है और JVM के लिए एक स्थिर विधि को कॉल करने के लिए कक्षा का एक उदाहरण बनाना आवश्यक नहीं है।

JVM क्लास को लोड और इनिशियलाइज़ करेगा (जिसका अर्थ है: यह स्टैटिक इनिशियलाइज़र चलाता है), लेकिन इसका एक उदाहरण नहीं बनाएगा।

अधिक जानकारी: जावा ट्यूटोरियल - कक्षा के सदस्यों को समझना

1
Jesper 7 अक्टूबर 2018, 13:21