serialization - What is the difference between Serializable and Externalizable in Java? -


जावा में और बीच में अंतर क्या है?

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

जावा के पिछले संस्करण में, प्रतिबिंब बहुत धीमा था, और इसलिए बड़े ऑब्जेक्ट ग्राफ (जैसे- क्लाइंट सर्वर RMI अनुप्रयोगों में) एक प्रदर्शन समस्या का एक सा था। इस स्थिति को संभालने के लिए, java.io.Externizable इंटरफ़ेस प्रदान किया गया था, जो कि java.io.Serializable जैसा है, लेकिन कस्टम लिखित तंत्र के साथ मारशलिंग और अनारशेलिंग फ़ंक्शंस करने के लिए (आपको अपनी क्लास पर readExternal और लिखने के एक्सरेन्सियल तरीके लागू करने की आवश्यकता है)। यह आपको प्रतिबिंब प्रदर्शन बाधाओं के आसपास पाने का मतलब देता है

जावा के हाल के संस्करणों में (1.3 निश्चित रूप से, निश्चित रूप से) प्रतिबिंब का प्रदर्शन बेहद बेहतर था, और इसलिए यह एक समस्या से बहुत कम है। मुझे संदेह है कि आपको एक आधुनिक जेवीएम के साथ Externalizable से एक सार्थक लाभ प्राप्त करने के लिए कड़ी दबाया जाएगा।

इसके अलावा, अंतर्निहित जावा धारावाहिकरण तंत्र केवल एक ही नहीं है, आप जेबीस सीरियललाइज जैसी तृतीय-पक्ष प्रतिस्थापन प्राप्त कर सकते हैं, जो कि काफी तेज है, और इसके लिए एक ड्रॉप-इन प्रतिस्थापन है Externalizable का एक बड़ा नकारात्मक पक्ष यह है कि आपको इस तर्क को स्वयं बनाए रखना होगा - अगर आप अपनी कक्षा में कोई फ़ील्ड जोड़ते हैं, हटाते हैं या बदलते हैं, तो आपको अपना < कोड> लिखने के लिए विदेश में / पढ़ने के लिए एक्सरेनेबल विधियां इसके लिए खाते हैं।

सारांश में, बाहरी योग्य जावा 1.1 दिनों का अवशेष है इसके लिए वास्तव में कोई आवश्यकता नहीं है।


Comments

Popular posts from this blog

python - Overriding the save method in Django ModelForm -

html - CSS autoheight, but fit content to height of div -

qt - How to prevent QAudioInput from automatically boosting the master volume to 100%? -