जावा में Mutable और Immutable में क्या अंतर है?



जावा में Mutable और Immutable पर यह लेख उनके बीच के मतभेदों का एक व्यापक मार्गदर्शक है और यह भी चर्चा करता है कि जावा तार अपरिवर्तनीय क्यों हैं।

जावा सबसे लोकप्रिय में से एक है एप्लिकेशन बनाने के लिए विभिन्न अवधारणाएँ प्रदान करता है, और एक ऐसी अवधारणा जावा में Mutable And Immutable है। खैर, यह अवधारणा वस्तु निर्माण के बाद खेतों में बदलाव करने पर निर्भर करती है और इस तरह से प्रोग्रामिंग को आसान बनाती है । इसलिए, जावा में परिवर्तनशील और अपरिवर्तनीय पर इस लेख में, मैं निम्नलिखित विषयों पर चर्चा करूंगा:

Mutable ऑब्जेक्ट क्या है?





जिन वस्तुओं में आप ऑब्जेक्ट बनने के बाद फ़ील्ड और स्टेट्स को बदल सकते हैं, उन्हें Mutable ऑब्जेक्ट के रूप में जाना जाता है। उदाहरण : java.util.Date, StringBuilder, और आदि।

अपरिवर्तनीय वस्तु क्या है?



वस्तुएं जिसमें आप कुछ भी नहीं बदल सकते हैं जब एक बार ऑब्जेक्ट बनाया जाता है तो उन्हें अपरिवर्तनीय वस्तुओं के रूप में जाना जाता है। उदाहरण : बॉक्सर आदिम वस्तुओं जैसे इंटीजर, लॉन्ग और आदि।

तो, अब जब आप जान गए हैं कि जावा में क्या परिवर्तनशील और अपरिवर्तनीय है, तो हम आगे बढ़ते हैं और दोनों के बीच अंतर देखते हैं।

आपसी और अपरिवर्तनीय वस्तुओं के बीच अंतर



आप जावा में उत्परिवर्तनीय और अपरिवर्तनीय वस्तुओं के बीच अंतर के लिए निम्न तालिका का उल्लेख कर सकते हैं।

म्यूट करने योग्य अपरिवर्तनीय
ऑब्जेक्ट निर्माण के बाद फ़ील्ड्स को बदला जा सकता हैऑब्जेक्ट निर्माण के बाद फ़ील्ड नहीं बदली जा सकती हैं
आम तौर पर क्षेत्र मान को संशोधित करने के लिए एक विधि प्रदान करता हैफ़ील्ड मान को संशोधित करने के लिए कोई विधि नहीं है
गेट्टर और सेटर विधियां हैंकेवल गेट्टर विधि है
उदाहरण: StringBuilder, java.util.Dateउदाहरण: स्ट्रिंग, बॉक्सिंग आदिम वस्तुएँ जैसे इंटेगर, लॉन्ग और आदि

अब जब आप उत्परिवर्तनीय और अपरिवर्तनीय वस्तुओं के बीच अंतर जानते हैं, तो आइए देखें कि इन्हें कैसे बनाया जाए कक्षाएं।

Mutable class कैसे बनाये?

जावा में एक उत्परिवर्तनीय वर्ग बनाने के लिए आपको यह सुनिश्चित करना होगा कि निम्नलिखित आवश्यकताएं पूरी हों:

  1. एक विधि प्रदान करें फ़ील्ड मानों को संशोधित करने के लिए
  2. गेटटर और सेटर विधि

निम्नलिखित कोड पर विचार करें:

पैकेज एडुर्का पब्लिक क्लास उदाहरण {प्राइवेट स्ट्रिंग कॉर्सेन उदाहरण (स्ट्रिंग प्रांगण) {this.coursename = coursename} सार्वजनिक स्ट्रिंग getName () {रिटर्न कॉर्सनेम} सार्वजनिक शून्य सेटनाम (स्ट्रिंग शस्त्रागार) {this.coursename = coursename} सार्वजनिक स्थैतिक शून्य मेन [] args) {उदाहरण obj = नया उदाहरण ('मशीन लर्निंग') System.out.println (obj.getName ()) // नाम को अपडेट करें, यह ऑब्जेक्ट उत्परिवर्ती obj.setName ('मशीन लर्निंग मास्टर्स)' सिस्टम है। out.println (obj.getName ())}}

आपको निम्न आउटपुट दिखाई देगा:

म्यूटेबल ऑब्जेक्ट आउटपुट - जावा और एडुर्का में Mutable और Immutable

तो अब जब आप जानते हैं कि एक उत्परिवर्ती वर्ग कैसे बनाया जाता है, तो इस लेख में, आइए हम इस बात पर ध्यान दें कि एक अपरिवर्तनीय वर्ग कैसे बनाया जाए।

कैसे एक अपरिवर्तनीय वर्ग बनाने के लिए?

जावा में एक अपरिवर्तनीय वर्ग बनाने के लिए आपको यह सुनिश्चित करना होगा कि निम्नलिखित आवश्यकताओं को पूरा किया जाए:

  1. एक वर्ग के रूप में घोषित किया जाना चाहिए अंतिम ताकि इसे बढ़ाया नहीं जा सके।
  2. सभी क्षेत्रों को निजी बनाया जाना चाहिए ताकि प्रत्यक्ष पहुंच की अनुमति न हो
  3. कोई सेटर विधियां नहीं
  4. सभी परिवर्तनशील फ़ील्ड्स को अंतिम रूप दें, ताकि उन्हें केवल एक बार सौंपा जा सके।
पैकेज एडुर्का पब्लिक क्लास उदाहरणनीय ({निजी अंतिम स्ट्रिंग प्रांगण उदाहरण) (अंतिम स्ट्रिंग प्रांगण) {this.coursename = coursename} सार्वजनिक अंतिम स्ट्रिंग getName () {वापसी coursename) पब्लिक स्टेटिक शून्य मुख्य (स्ट्रिंग [] args) {उदाहरण obj = नया उदाहरण 'मशीन लर्निंग') System.out.println (obj.getName ())}}

आप नीचे उत्पादन देखेंगे:

ठीक है, तो अब जब आप परिवर्तनशील और अपरिवर्तनीय वस्तुओं के बारे में जानते हैं, तो मैं आपको बता दूं कि स्ट्रिंग्स जावा में अपरिवर्तनीय हैं। अब, मुझे यकीन है कि इसने एक सवाल उठाया होगा, कि जावा में तार अपरिवर्तनीय क्यों हैं। तो, इस लेख में, हम उसी को देखते हैं।

जावा में स्ट्रिंग्स अपरिवर्तनीय क्यों हैं?

जावा की अवधारणाओं का उपयोग करता है । इसलिए, यदि आप एक उदाहरण पर विचार करते हैं, जहाँ आपके पास एक एकल वस्तु का संदर्भ देने वाले कई संदर्भ चर हैं, तो भले ही एक संदर्भ चर का मान बदल जाए वस्तु , स्वचालित रूप से अन्य सभी संदर्भ चर प्रभावित होंगे। के अनुसार भी प्रभावी जावा ,अध्याय ४, पृष्ठ 4३, २ संस्करण, निम्नलिखित इम्यूटेबल कक्षाओं का उपयोग करने के कारण हैं:

  • अपरिवर्तनीय वस्तुएँ सरल होती हैं
  • इन वस्तुओं को कोई सिंक्रनाइज़ेशन की आवश्यकता नहीं होती है और स्वाभाविक रूप से थ्रेड-सुरक्षित होते हैं
  • अपरिवर्तनीय वस्तुएँ अन्य वस्तुओं के लिए अच्छी इमारत ब्लॉक बनाती हैं

अगर मुझे आपको एक उदाहरण के साथ समझाना है, तो,

हम कहते हैं कि आपके पास एक चर है नमूना लेना , जो स्ट्रिंग स्टोर करता है ” यंत्र अधिगम “। अब, यदि आप इस स्ट्रिंग को दूसरे स्ट्रिंग के साथ समेटते हैं ' परास्नातक ', तब के लिए बनाई गई वस्तु ' यंत्र अधिगम ' बदलेगा नहीं। इसके बजाय, एक नई वस्तु बनाई जाएगी ' मशीन लर्निंग मास्टर्स “। नीचे दी गई छवि देखें:

जैसा कि आप ऊपर की छवि में देख सकते हैं, नमूना लेना संदर्भ चर 'मशीन लर्निंग' को संदर्भित करता है, लेकिन दो वस्तुओं के निर्माण के बाद भी, अन्य स्ट्रिंग नहीं। इसके साथ, हम जावा में Mutable and Immutable के इस लेख पर आते हैं। मुझे उम्मीद है कि आप लोग प्रत्येक और हर उस पहलू के बारे में स्पष्ट होंगे जो मैंने ऊपर चर्चा की है।

जावा में नियंत्रण प्रवाह विवरण

अब जब आप जावा की मूल बातें समझ गए हैं, तो देखें 250,000 से अधिक संतुष्ट शिक्षार्थियों के एक नेटवर्क के साथ एक विश्वसनीय ऑनलाइन शिक्षण कंपनी, एडुरेका द्वारा, दुनिया भर में फैली हुई है। एडुर्का के जावा जे 2 ईई और एसओए प्रशिक्षण और प्रमाणन पाठ्यक्रम उन छात्रों और पेशेवरों के लिए डिज़ाइन किया गया है जो जावा डेवलपर बनना चाहते हैं। पाठ्यक्रम आपको जावा प्रोग्रामिंग में एक शुरुआत देने के लिए डिज़ाइन किया गया है और आपको हाइबरनेट और स्प्रिंग जैसे विभिन्न जावा फ्रेमवर्क के साथ कोर और उन्नत जावा अवधारणाओं दोनों के लिए प्रशिक्षित करता है।

क्या आप हमसे कोई प्रश्न पूछना चाहते हैं? कृपया इसे 'जावा में म्यूटेबल और अपरिवर्तनीय' ब्लॉग के टिप्पणियों अनुभाग में उल्लेख करें और हम जल्द से जल्द आपके पास वापस आ जाएंगे।