जावा में, क्रमांकन एक अवधारणा है जिसके उपयोग से हम किसी वस्तु की स्थिति को बाइट स्ट्रीम में लिख सकते हैं ताकि हम इसे नेटवर्क पर स्थानांतरित कर सकें (जेपीए और आरएमआई जैसी तकनीकों का उपयोग करके)।
क्षणिक चर - क्षणिक चर के मूल्यों पर कभी विचार नहीं किया जाता है (उन्हें क्रमांकन प्रक्रिया से बाहर रखा गया है)। यानी जब हम एक परिवर्तनीय क्षणिक घोषित करते हैं, तो डी-सीरियलाइजेशन के बाद इसका मान हमेशा शून्य, गलत या शून्य (डिफ़ॉल्ट मान) होगा।
इसलिए, किसी वर्ग की वस्तु को क्रमबद्ध करते समय, यदि आप चाहते हैं कि JVM किसी विशेष आवृत्ति चर की उपेक्षा करे, तो आपको इसे क्षणिक घोषित कर सकते हैं।
सार्वजनिक क्षणिक अंतर सीमा =55; // सार्वजनिक int b जारी नहीं रहेगा; // बनी रहेगी
उदाहरण
निम्नलिखित जावा प्रोग्राम में, क्लास स्टूडेंट के पास दो इंस्टेंस वेरिएबल नाम और उम्र होते हैं, जहां उम्र को क्षणिक घोषित किया जाता है। SerializeExample . नामक एक अन्य वर्ग में हम छात्र वस्तु को क्रमबद्ध और नष्ट करने की कोशिश कर रहे हैं और इसके उदाहरण चर प्रदर्शित करते हैं। चूंकि उम्र को अदृश्य (क्षणिक) बना दिया जाता है, केवल नाम मान प्रदर्शित होता है।
आयात करें निजी क्षणिक अंतर आयु; सार्वजनिक छात्र (स्ट्रिंग नाम, अंतर आयु) { यह नाम =नाम; यह उम्र =उम्र; } सार्वजनिक शून्य प्रदर्शन () { System.out.println ("नाम:" + this.name); System.out.println ("आयु:" + this.age); }}सार्वजनिक वर्ग SerializeExample { सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग args []) अपवाद फेंकता है {// एक छात्र वस्तु बनाना छात्र एसटीडी =नया छात्र ("सरमिस्ता", 27); // ऑब्जेक्ट को सीरियलाइज़ करना FileOutputStream fos =new FileOutputStream ("e:\\student.ser"); ObjectOutputStream oos =नया ObjectOutputStream (fos); oos.writeObject (एसटीडी); oos.बंद (); फ़ोस.क्लोज़ (); System.out.println ("डी-सीरियलाइज़ेशन से पहले के मान:"); एसटीडी.डिस्प्ले (); System.out.println ("ऑब्जेक्ट क्रमबद्ध ......."); // ऑब्जेक्ट को डी-सीरियलाइज़ करना FileInputStream fis =new FileInputStream("e:\\student.ser"); ऑब्जेक्ट इनपुटस्ट्रीम ओआईएस =नया ऑब्जेक्ट इनपुटस्ट्रीम (एफआईएस); छात्र deSerializedStd =(छात्र) ois.readObject (); System.out.println ("ऑब्जेक्ट डी-सीरियलाइज़्ड......."); ois. करीब (); फिस.क्लोज़ (); System.out.println ("डी-सीरियलाइज़ेशन के बाद मान"); deSerializedStd.display (); }}आउटपुट
डी-सीरियलाइजेशन से पहले के मान:नाम:सरमिस्टाएज:27ऑब्जेक्ट सीरियलाइज्ड ......ऑब्जेक्ट डी-सीरियलाइज्ड ...... डी-सीरियलाइजेशन के बाद के मान नाम:सरमिस्ताआयु:0