यदि आप किसी भी चर को अंतिम होने का संकेत देते हैं, तो इसका मतलब है कि आप यह नहीं चाहते कि स्मृति में यह मान बदल जाए। आदिम प्रकारों के मामले में, चर द्वारा प्रतिनिधित्व किया गया मान वास्तविक मान हैं। ऑब्जेक्ट प्रकारों के मामले में, स्मृति में मान वस्तु के संदर्भ हैं, न कि वास्तविक वस्तुओं।
उदाहरण के लिए, आप:
final int x = 7;
final Object y = new Object();
आप डेटा के बारे में सोच सकते स्मृति में इस तरह से प्रतिनिधित्व किया जा रहा:
+----------+----------+
| block | value |
+----------+----------+
| 1001 | 7 |
| 1002 | 2110 |
+----------+----------+
चर्चा के लिए, कैसे के विवरण बाहर छोड़ देना जावा वास्तव में स्मृति का प्रबंधन करता है (क्योंकि मुझे इसके बारे में ज्यादा जानकारी नहीं है)। तो, ऊपर दिए गए उदाहरण में, ब्लॉक 1001 को चर x द्वारा दर्शाया गया है, और 1002 द्वारा y। दोनों अंतिम चर हैं जिसका अर्थ है कि उनके द्वारा प्रस्तुत मूल्यों को बदला नहीं जा सकता है। एक्स के मामले में, यह 7 है, जो वास्तविक मूल्य है, लेकिन वाई के मामले में, 2110 सिर्फ एक अन्य स्मृति स्थान का संदर्भ है। दोनों बदल नहीं सकते हैं लेकिन कारण आदिम प्रकार चर स्थिरांक बनने का कारण यह है कि वे वास्तविक मूल्यों का प्रतिनिधित्व करते हैं। लेकिन वास्तव में, आप ऑब्जेक्ट प्रकार चर के लिए भी यही कह सकते हैं कि स्थिरांक वे प्रतिनिधित्व करते हैं संदर्भ हैं। तो अंतिम कीवर्ड इस संबंध में काफी संगत है।
तो, अंतिम चर के साथ, यदि वे आदिम प्रकार हैं, तो वे लगातार आपके द्वारा निर्धारित किसी भी विशेष मान का प्रतिनिधित्व करेंगे। यदि वे ऑब्जेक्ट/संदर्भ प्रकार हैं, तो वे लगातार किसी ऑब्जेक्ट को इंगित करेंगे जो आप उन्हें इंगित करते हैं (ऑब्जेक्ट्स 'अस्थिरता के बावजूद)।
स्रोत
2012-06-29 11:26:03
तो मूल रूप से यह ऑब्जेक्ट का एक नया उदाहरण निर्दिष्ट करने की अनुमति नहीं देता है? अन्य चीजों के बारे में क्या कहना है: 'छवि img = loadImage ("img.png"); '। क्या आप तब कर सकते हैं: 'img = loadImage ("image.png"); '? या यह अवैध होगा? –
@LinkTheProgrammer आपको क्या लगता है? – NimChimpsky