एक वेरिएबल हमें नामित स्टोरेज प्रदान करता है जिसे हमारे प्रोग्राम मैनिपुलेट कर सकते हैं। Java में प्रत्येक वेरिएबल का एक विशिष्ट प्रकार होता है, जो वेरिएबल की मेमोरी के आकार और लेआउट को निर्धारित करता है; उस मेमोरी के भीतर स्टोर किए जा सकने वाले मानों की सीमा; और वेरिएबल पर लागू किए जा सकने वाले ऑपरेशन्स का सेट।
Static Variable
एक static वेरिएबल को क्लास वेरिएबल भी कहा जाता है और यह क्लास के ऑब्जेक्ट्स में सामान्य होता है और इस वेरिएबल को क्लास नाम का उपयोग करके भी एक्सेस किया जा सकता है।
Non-Static Variable
किसी क्लास का कोई भी वेरिएबल जो static नहीं है, उसे non-static वेरिएबल या इंस्टेंस वेरिएबल कहा जाता है।
Static और non-static वेरिएबल के बीच महत्वपूर्ण अंतर निम्नलिखित हैं:
| क्र. सं. | मुख्य बिंदु | Static | Non-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