ऐसा कहा जाता है कि जावा का डिफ़ॉल्ट क्रमिकरण तंत्र बहुत प्रभावी नहीं है क्योंकि ए) यह पता लगाता है कि कौन से फ़ील्ड प्रतिबिंब के माध्यम से लिखने/पढ़ने के लिए आमतौर पर धीमे होते हैं बी) यह स्ट्रीम करने के लिए अतिरिक्त डेटा लिखता है।जावा: लिखने की दक्षता ऑब्जेक्ट बनाम लिखना बाहरी
इसे और अधिक कुशल बनाने का एक तरीका बाहरी और लागू करने के लिए बाहरी/पढ़ने के बाहरी तरीकों को लागू करना है।
यहां प्रश्न है: यदि मैं इसके बजाय 'writeObject/readObject' विधियों को प्रदान करता हूं और उनमें deafiltWriteObject/defaultReadObject को कॉल नहीं करता हूं, तो यह तंत्र प्रतिबिंब का उपयोग नहीं करेगा यह जानने के लिए कि कौन से फ़ील्ड लिखना/पढ़ना है, साथ ही यह जीता स्ट्रीम करने के लिए अतिरिक्त डेटा नहीं लिखेंगे (या यह सुनिश्चित होगा?)। तो एक दक्षता परिप्रेक्ष्य से, बाह्यकरण लागू करने के समान ऊपर लिखने के लिए लिखने के लिए ऑब्जेक्ट/readObject लागू कर रहा है? या क्या बाद का विकल्प कुछ और व्यावहारिक लाभ देता है जो पूर्व नहीं करता है?
संपादित करें: एक अंतर है, बेशक, जब एक Serializable वर्ग readObject/writeObject को लागू करने subclassed है है, और अगर उपवर्ग का अपना readObject/writeObject है, वे सुपर के readObject/writeObject कॉल करने के लिए की जरूरत नहीं है। ऐसा नहीं है अगर सुपर/सबक्लास इसके बजाय बाहरीकरण लागू करता है। इस मामले में, सुपर का लेखन बाहरी/पढ़ा जाने वाला बाहरी रूप स्पष्ट रूप से बुलाया जाना चाहिए। हालांकि, यह अंतर एक दक्षता बिंदु से अप्रासंगिक है।
क्या आप pl। इसे थोड़ा और समझाएं: "अभी भी कॉल करने के लिए कौन सा वर्ग/लिखना ऑब्जेक्ट/पढ़ना ऑब्जेक्ट चुनने में कुछ सिर है।" इसके अलावा, 'readResolve' 'बाहरी' अनुबंध का हिस्सा नहीं है, है ना?तो मैं थोड़ा उलझन में हूँ। – shrini1000
यह निर्धारित करना है कि कौन सी कक्षा को पढ़ने के लिए ऑब्जेक्ट या पढ़ा जाता है जब तक कि आप इसे स्वयं भी नहीं करते। readResolve एक वैकल्पिक विधि है जिसे आप Serailizable के साथ भी उपयोग कर सकते हैं। अधिक जानकारी के लिए पहला लिंक देखें। –
Thx। मैंने readResolve का उपयोग किया है, लेकिन उलझन में आया क्योंकि आपने बाहरीकरण के संबंध में इसका उल्लेख किया है। बीटीडब्ल्यू, मैंने आपका लेख पढ़ा। अच्छा था। मैंने वहां एक सवाल पूछा है। यदि आप pl कर सकते हैं तो यह बहुत अच्छा होगा। जवाब दे दो। – shrini1000