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

म्यूटेबल और इम्यूटेबल ऑब्जेक्ट के बीच अंतर

परिचय

Java में, इम्यूटेबल ऑब्जेक्ट की स्थिति को बनने के बाद संशोधित नहीं किया जा सकता लेकिन निश्चित रूप से अन्य ऑब्जेक्ट्स को संदर्भित कर सकता है। वे मल्टीथ्रेडिंग वातावरण में बहुत उपयोगी हैं क्योंकि कई थ्रेड्स ऑब्जेक्ट की स्थिति को नहीं बदल सकते इसलिए इम्यूटेबल ऑब्जेक्ट्स थ्रेड-सेफ होते हैं। इम्यूटेबल ऑब्जेक्ट्स टेम्पोरल कपलिंग से बचने और हमेशा फेल्योर एटॉमिसिटी रखने में बहुत मददगार होते हैं।

दूसरी ओर, म्यूटेबल ऑब्जेक्ट्स में ऐसे फील्ड्स होते हैं जिन्हें बदला जा सकता है, इम्यूटेबल ऑब्जेक्ट्स में ऐसा कोई फील्ड नहीं होता जिसे ऑब्जेक्ट बनने के बाद बदला जा सके।

क्र. सं.मुख्य बिंदुम्यूटेबल ऑब्जेक्टइम्यूटेबल ऑब्जेक्ट
1बुनियादीहम बनने के बाद म्यूटेबल ऑब्जेक्ट की स्थिति को संशोधित कर सकते हैंहम ऑब्जेक्ट बनने के बाद उसकी स्थिति को संशोधित नहीं कर सकते।
2थ्रेड-सेफम्यूटेबल ऑब्जेक्ट्स थ्रेड-सेफ नहीं हैंइम्यूटेबल ऑब्जेक्ट्स थ्रेड-सेफ हैं।
3फाइनलम्यूटेबल क्लास फाइनल नहीं हैंइम्यूटेबल ऑब्जेक्ट बनाने के लिए, क्लास को फाइनल बनाएं
4उदाहरणडिफ़ॉल्ट रूप से सभी क्लास और उसके ऑब्जेक्ट प्रकृति में म्यूटेबल होते हैं।String और सभी वॉपर क्लास इम्यूटेबल क्लास के उदाहरण हैं

इम्यूटेबल क्लास का उदाहरण

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 MutableClass {
    private String laptop;
    public String getLaptop() {
        return laptop;
    }
    public void setLaptop(String laptop) {
        this.laptop = laptop;
    }
    public MutableClass(String laptop) {
        super();
        this.laptop = laptop;
    }
}
public class Main {
    public static void main(String args[]) {
        MutableClass mutableClass = new MutableClass("Dell");
        System.out.println(mutableClass.getLaptop());
        mutableClass.setLaptop("IBM");
        System.out.println(mutableClass.getLaptop());
    }
}
  1. - Go और Java में अंतर

    GoGo एक प्रक्रियात्मक प्रोग्रामिंग भाषा है। प्रोग्राम पैकेज का उपयोग करके असेंबल किए जाते हैं। यह डायनामिक भाषाओं के समान पैटर्न को अपनाने वाले वातावरण का समर्थन करता है।JavaJava एक ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा है। Java काफी तेज, विश्वसनीय और सुरक्षित है। यह सबसे व्यापक रूप से उपयोग की जाने व

  1. - जावा में Comparable और Comparator के बीच अंतर

    Comparable और Comparator दोनों इंटरफेस हैं जिनका उपयोग कलेक्शन के एलिमेंट्स को सॉर्ट करने के लिए किया जा सकता है। Comparator इंटरफेस java.util पैकेज से संबंधित है जबकि Comparable java.lang पैकेज से संबंधित है। Comparator इंटरफेस उसे प्रदान किए गए दो ऑब्जेक्ट्स का उपयोग करके कलेक्शन को सॉर्ट करता है,

  1. - Python इटरेबल और इटरेटर के बीच अंतर

    एक इटरेबल को मोटे तौर पर एक ऑब्जेक्ट के रूप में परिभाषित किया जा सकता है जो बिल्ट-इन मेथड iter() को पास किए जाने पर एक इटरेटर उत्पन्न करेगा। एक ऑब्जेक्ट के इटरेबल होने के लिए कुछ शर्तें हैं, क्लास के ऑब्जेक्ट को दो इंस्टेंस मेथड परिभाषित करने की आवश्यकता है: __len__ और __getitem__। एक ऑब्जेक्ट जो इ