जावा में, अपरिवर्तनीय वस्तु की स्थिति को बनाए जाने के बाद संशोधित नहीं किया जा सकता है, लेकिन निश्चित रूप से अन्य वस्तुओं को संदर्भित करता है। वे मल्टीथ्रेडिंग वातावरण में बहुत उपयोगी हैं क्योंकि कई थ्रेड ऑब्जेक्ट की स्थिति को नहीं बदल सकते हैं इसलिए अपरिवर्तनीय ऑब्जेक्ट थ्रेड सुरक्षित हैं। अस्थायी युग्मन से बचने के लिए अपरिवर्तनीय वस्तुएं बहुत सहायक होती हैं और हमेशा विफलता परमाणु होती है।
दूसरी ओर, म्यूटेबल ऑब्जेक्ट्स में फ़ील्ड होते हैं जिन्हें बदला जा सकता है, अपरिवर्तनीय ऑब्जेक्ट्स में कोई फ़ील्ड नहीं होता है जिसे ऑब्जेक्ट बनने के बाद बदला जा सकता है।
Sr. नहीं. | <वें शैली="चौड़ाई:6.8027%; पाठ-संरेखण:केंद्र;">कुंजीम्यूटेबल ऑब्जेक्ट | अपरिवर्तनीय वस्तु | |
---|---|---|---|
1 | मूलभूत | हम एक परिवर्तनशील वस्तु के बनने के बाद उसकी स्थिति को संशोधित कर सकते हैं | ऑब्जेक्ट बनने के बाद हम उसकी स्थिति को संशोधित नहीं कर सकते। |
2 | धागा सुरक्षित | म्यूटेबल ऑब्जेक्ट थ्रेड सुरक्षित नहीं हैं | अपरिवर्तनीय वस्तुएं थ्रेड सुरक्षित हैं। |
3 | अंतिम | परिवर्तनीय वर्ग अंतिम नहीं हैं | एक अपरिवर्तनीय वस्तु बनाने के लिए, कक्षा को अंतिम बनाएं |
4 | उदाहरण | डिफ़ॉल्ट रूप से सभी वर्ग और इसकी वस्तु स्वभाव से परिवर्तनशील होते हैं। | स्ट्रिंग और सभी रैपर वर्ग अपरिवर्तनीय वर्गों के उदाहरण हैं |
अपरिवर्तनीय वर्ग का उदाहरण
public final class ImmutableClass { private String laptop; public String getLaptop() { return laptop; } public ImmutableClass(String laptop) { super(); this.laptop = laptop; } } public class Main { public static void main(String args[]) { ImmutableClass immutableClass = new ImmutableClass("Dell"); System.out.println(immutableClass.getLaptop()); } }
म्यूटेबल क्लास का उदाहरण
public class MuttableClass { private String laptop; public String getLaptop() { return laptop; } public void setLaptop(String laptop) { this.laptop = laptop; } public MuttableClass(String laptop) { super(); this.laptop = laptop; } } public class Main { public static void main(String args[]) { MuttableClass muttableClass = new MuttableClass("Dell"); System.out.println(muttableClass.getLaptop()); muttableClass.setLaptop("IBM"); System.out.println(muttableClass.getLaptop()); } }