Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

Java में static और non-static वेरिएबल्स में अंतर

एक वेरिएबल हमें नामित स्टोरेज प्रदान करता है जिसे हमारे प्रोग्राम मैनिपुलेट कर सकते हैं। Java में प्रत्येक वेरिएबल का एक विशिष्ट प्रकार होता है, जो वेरिएबल की मेमोरी के आकार और लेआउट को निर्धारित करता है; उस मेमोरी के भीतर स्टोर किए जा सकने वाले मानों की सीमा; और वेरिएबल पर लागू किए जा सकने वाले ऑपरेशन्स का सेट।

Static Variable

एक static वेरिएबल को क्लास वेरिएबल भी कहा जाता है और यह क्लास के ऑब्जेक्ट्स में सामान्य होता है और इस वेरिएबल को क्लास नाम का उपयोग करके भी एक्सेस किया जा सकता है।

Non-Static Variable

किसी क्लास का कोई भी वेरिएबल जो static नहीं है, उसे non-static वेरिएबल या इंस्टेंस वेरिएबल कहा जाता है।

Static और non-static वेरिएबल के बीच महत्वपूर्ण अंतर निम्नलिखित हैं:

क्र. सं.मुख्य बिंदुStaticNon-Static
1एक्सेसएक static वेरिएबल को static मेंबर्स के साथ-साथ non-static मेंबर फंक्शन्स द्वारा एक्सेस किया जा सकता है।एक non-static वेरिएबल को static मेंबर फंक्शन्स द्वारा एक्सेस नहीं किया जा सकता।
2शेयरिंगएक static वेरिएबल ग्लोबल वेरिएबल की तरह कार्य करता है और क्लास के सभी ऑब्जेक्ट्स के बीच शेयर किया जाता है।Non-static वेरिएबल उस इंस्टेंस ऑब्जेक्ट के लिए विशिष्ट होते हैं जिसमें वे बनाए जाते हैं।
3मेमोरी आवंटनStatic वेरिएबल्स कम जगह घेरते हैं और मेमोरी आवंटन एक बार होता है।Non-static वेरिएबल अधिक जगह घेर सकते हैं। मेमोरी आवंटन रनटाइम पर हो सकता है।
4कीवर्डएक static वेरिएबल को static कीवर्ड का उपयोग करके घोषित किया जाता है।एक सामान्य वेरिएबल के लिए किसी विशेष कीवर्ड की आवश्यकता नहीं होती।

Static बनाम non-static वेरिएबल का उदाहरण

JavaTester.java

public class JavaTester { 
    public int counter = 0; 
    public static int staticCounter = 0; 
    public JavaTester(){ 
        counter++; 
        staticCounter++; 
    } 
    public static void main(String args[]) { 
        JavaTester tester = new JavaTester(); 
        JavaTester tester1 = new JavaTester(); 
        JavaTester tester2 = new JavaTester(); 
        System.out.println("Counter: " + tester2.counter); 
        System.out.println("Static Counter: " + tester2.staticCounter); 
    } 
}

आउटपुट

Counter: 1 Static Counter: 3
  1. - जावा में Collection और Collections में अंतर?

    Collection एक इंटरफेस है जबकि Collections जावा में एक यूटिलिटी क्लास है। Set, List, और Queue Collection इंटरफेस के कुछ सबइंटरफेस हैं, एक Map इंटरफेस भी Collections फ्रेमवर्क का हिस्सा है, लेकिन यह Collection इंटरफेस को इनहेरिट नहीं करता। Collection इंटरफेस के महत्वपूर्ण मेथड्स हैं add(), remove(),

  1. - Java में स्टैटिक ब्लॉक और कंस्ट्रक्टर में क्या अंतर है?

    स्टैटिक ब्लॉक स्टैटिक ब्लॉक्स क्लास लोडिंग के समय निष्पादित होते हैं। स्टैटिक ब्लॉक्स main() मेथड चलने से पहले निष्पादित होते हैं। स्टैटिक ब्लॉक्स के प्रोटोटाइप में कोई नाम नहीं होता। यदि हम कोई लॉजिक चाहते हैं जिसे क्लास लोडिंग के समय निष्पादित करने की आवश्यकता है, तो उस लॉजिक को स्टैटिक ब्लॉक के

  1. - Java में import और static import स्टेटमेंट्स में क्या अंतर है?

    हम किसी विशेष पैकेज के क्लासेस और इंटरफेसेस को इम्पोर्ट करने के लिए इम्पोर्ट स्टेटमेंट का उपयोग कर सकते हैं। जब भी हम इम्पोर्ट स्टेटमेंट का उपयोग करते हैं, तो फुली क्वालिफाइड नाम का उपयोग करना आवश्यक नहीं होता और हम शॉर्ट नेम को सीधे उपयोग कर सकते हैं। हम static import का उपयोग किसी विशेष क्लास और