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

जावा में Serialization और Externalization के बीच अंतर

Serialization और Externalization दोनों ऑब्जेक्ट को बाइट स्ट्रीम में बदलने और बाइट स्ट्रीम को डेटाबेस या मेमोरी में स्टोर करने की प्रक्रियाएं हैं। जो क्लास java.io.Serializable इंटरफेस को इम्प्लीमेंट करती है उसे सीरियलाइज किया जा सकता है। दूसरी ओर, Externalization एप्लिकेशन में आवश्यकता के आधार पर कस्टम सीरियलाइजेशन के लिए उपयोग किया जाता है। Externalization, java.io.Serializable को एक्सटेंड करता है।

क्र.सं. मुख्य बिंदु Serialization Externalization
1 इंटरफेस Serialization एक मार्कर इंटरफेस है Externalization में दो मेथड्स होते हैं: readExternal और writeExternal
2 इम्प्लीमेंटेशन लॉजिक यह इंटरफेस इम्प्लीमेंट करने वाली क्लास JVM को जावा ऑब्जेक्ट को सीरियलाइज या पर्सिस्ट करने की जिम्मेदारी देती है। JVM सीरियलाइजेशन के लिए readObject और writeObject का उपयोग करता है Externalization readExternal और writeExternal मेथड्स को ओवरराइड करके इम्प्लीमेंटेशन लॉजिक का कंट्रोल एप्लिकेशन को देता है
3 वेरिएबल्स को इग्नोर करने का तरीका सीरियलाइजेशन में, JVM जावा ऑब्जेक्ट के सीरियलाइजेशन और डीसीरियलाइजेशन के दौरान transient वेरिएबल को इग्नोर करता है प्रोग्रामर जावा ऑब्जेक्ट के एक्सटर्नलाइजेशन के दौरान कुछ वेरिएबल्स को इग्नोर करने के लिए अपनी लॉजिक लिख सकता है
4 परफॉरमेंस Serializable इंटरफेस रिफ्लेक्शन का उपयोग करता है जो अपेक्षाकृत धीमा परफॉरमेंस देता है Externalizable इम्प्लीमेंटेशन अप्रोच पर पूरा कंट्रोल देता है
5 इनहेरिटेंस के साथ ऑब्जेक्ट सीरियलाइजेशन 1. यदि सुपरक्लास सीरियलाइजेबल नहीं है तो सबक्लास अभी भी सीरियलाइज हो सकती है
2. यदि सबक्लास सीरियलाइज्ड नहीं है लेकिन सुपरक्लास है तो ऑटोमैटिकली सीरियलाइजेबल
इसे एक्सटर्नलाइजेबल पर भी लागू किया जा सकता है

Externalizable का उदाहरण

class ExternalizableExample implements Externalizable {
    Integer id;
    
    @Override
    public void writeExternal(ObjectOutput out) throws IOException {
        out.writeInt(id);
    }
    
    @Override
    public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
        this.id = in.readInt();
    }
}

Serializable का उदाहरण

class SerializableExample implements Serializable {
    private static final long serialVersionUID = 5081877L;
    String name;
}

कब किसका उपयोग करें?

  • Serializable: सरल सीरियलाइजेशन के लिए, जब डिफ़ॉल्ट बिहेवियर पर्याप्त हो
  • Externalizable: जब सीरियलाइजेशन फॉर्मेट पर पूरा कंट्रोल चाहिए, परफॉरमेंस क्रिटिकल हो, या कॉम्प्लेक्स ऑब्जेक्ट ग्राफ हों
  1. - जावा में Exception और Error के बीच अंतर

    Exceptions और Errors दोनों Throwable क्लास के सबक्लास हैं। Error एक ऐसी समस्या को इंगित करता है जो मुख्य रूप से सिस्टम रिसोर्सेज की कमी के कारण होती है और हमारे एप्लिकेशन को इस प्रकार की समस्याओं को नहीं पकड़ना चाहिए। Errors के कुछ उदाहरण हैं: सिस्टम क्रैश एरर और आउट ऑफ मेमोरी एरर। Errors ज्यादातर र

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

    Iterator और Enumeration दोनों कलेक्शन से एलिमेंट्स को ट्रैवर्स और एक्सेस करने के लिए कर्सर हैं। वे दोनों कलेक्शन फ्रेमवर्क से संबंधित हैं। Enumeration JDK 1.0 में जोड़ा गया था और Iterator JDK 1.2 वर्जन में कलेक्शन फ्रेमवर्क में जोड़ा गया। Enumeration कलेक्शन में स्ट्रक्चरल चेंज नहीं कर सकता क्योंकि

  1. - Java में ArrayList और HashSet के बीच अंतर

    HashSet और ArrayList दोनों Java कलेक्शन फ्रेमवर्क के सबसे महत्वपूर्ण क्लासेस में से कुछ हैं।ArrayList और HashSet के बीच महत्वपूर्ण अंतर निम्नलिखित हैं।क्रमांकमुख्य बिंदुArrayListHashSet1कार्यान्वयनArrayList लिस्ट इंटरफेस का कार्यान्वयन है।दूसरी ओर HashSet सेट इंटरफेस का कार्यान्वयन है।2आंतरिक कार्या