ஜாவாவில் சீரியலைசேஷன் என்ற கருத்து என்ன?



இந்த கட்டுரை ஜாவாவில் சீரியலைசேஷன் என்ற கருத்தை நோக்கிய விரிவான அணுகுமுறையையும், சிறந்த புரிதலுக்கான நிகழ்நேர எடுத்துக்காட்டுகளையும் உதவும்.

இல் வரிசைப்படுத்தல் ஜாவா பொருள்களை ஒரு ஜாவா மெய்நிகர் இயந்திரத்திலிருந்து மற்றொன்றுக்கு கொண்டு சென்று அவற்றை அசல் வடிவத்திற்கு மீண்டும் உருவாக்க பைட் ஸ்ட்ரீமாக பொருட்களை மாற்றுவதைக் கையாளும் ஒரு முக்கியமான கருத்து. இந்த கட்டுரைக்கான டாக்கெட்டை நான் கீழே வரிசைப்படுத்துவேன்:

ஜாவாவில் சீரியலைசேஷன் என்றால் என்ன?

வரிசைப்படுத்தல் ஜாவாவில் ஜாவா குறியீட்டை மாற்றும் செயல்முறை ஆகும் பொருள் ஒரு பைட் ஸ்ட்ரீம் , பொருள் குறியீட்டை ஒரு ஜாவா மெய்நிகர் கணினியிலிருந்து மற்றொன்றுக்கு மாற்றுவதற்கும், அதன் செயல்முறையைப் பயன்படுத்தி அதை மீண்டும் உருவாக்குவதற்கும் தேசமயமாக்கல்.





Serialization-in-Java-Edureka-Picture-1

நமக்கு ஏன் சீரியலைசேஷன் தேவை ஜாவாவில் ?

பின்வரும் காரணங்களுக்காக எங்களுக்கு சீரியலைசேஷன் தேவை:



  • தொடர்பு : சீரியலைசேஷன் என்பது பொருளின் செயல்முறையை உள்ளடக்கியது வரிசைப்படுத்தல் மற்றும் பரவும் முறை. ஒரே நேரத்தில் பொருட்களை வடிவமைக்க, பகிர மற்றும் செயல்படுத்த பல கணினி அமைப்புகளுக்கு இது உதவுகிறது.

  • தற்காலிக சேமிப்பு : ஒரு பொருளைக் கட்டியெழுப்ப எடுக்கும் நேரம் அதை சீரியல் செய்வதற்குத் தேவையான நேரத்துடன் ஒப்பிடுகையில் அதிகம். வரிசைப்படுத்தல் நேர நுகர்வு குறைக்கிறது தற்காலிக சேமிப்பு மாபெரும் பொருள்கள்.

  • ஆழமான நகல் : குளோனிங் வரிசைப்படுத்தலைப் பயன்படுத்துவதன் மூலம் செயல்முறை எளிமையாக்கப்படுகிறது. ஒரு துல்லியமான பிரதி ஒரு பொருளின் மூலம் பெறப்படுகிறதுபொருளை வரிசைப்படுத்துதல் a பைட் வரிசை , பின்னர் அதை சீரியல் செய்தல்.



  • குறுக்கு ஜே.வி.எம் ஒத்திசைவு: சீரியலைசேஷனின் முக்கிய நன்மை என்னவென்றால்வெவ்வேறு JVM களில் இயங்குகிறது, அவை வேறுபட்டதாக இயங்கக்கூடும் கட்டமைப்புகள் அல்லது இயக்க முறைமைகள்

  • நிலைத்தன்மை: எந்தவொரு பொருளின் நிலையும் சீரியலைசேஷனைப் பயன்படுத்துவதன் மூலம் நேரடியாக சேமித்து வைக்கலாம் தரவுத்தளம் அதனால் அது இருக்க முடியும் பின்னர் பெறப்பட்டது.

ஒரு பொருளை எவ்வாறு வரிசைப்படுத்துவது?

TO ஜாவா பொருள் இருக்கிறது தொடர் அதன் வகுப்பு அல்லது அதன் பெற்றோர் வகுப்புகள் ஏதேனும் செயல்படுத்தினால் மட்டுமே ஜாவா . நான் . வரிசைப்படுத்தக்கூடியது இடைமுகம் அல்லது அதன் துணை இடைமுகம், java.io.Externalizable.

சீரியலைசேஷன் செயல்பாட்டில், ஒரு பொருளின் நிலையை ஒரு பைட் ஸ்ட்ரீமாக மாற்றுவோம், இதனால் அது ஒரு ஜே.வி.எம்மில் இருந்து மற்றொன்றுக்கு மாற்றப்பட்டு பைட் ஸ்ட்ரீமை அசல் பொருளாக மாற்றும்.

//இடைமுகம்

தொகுப்பு சீரியல் 1 இறக்குமதி java.io.Serializable பொது வகுப்பு ஊழியர் வரிசைப்படுத்தக்கூடிய {தனியார் நிலையான இறுதி நீண்ட சீரியல் வெர்ஷன் யுஐடி = 1 எல் // வரிசை பதிப்பு யுஐடி இன்ட் ஐடி சரம் பெயர் பொது ஊழியர் (எண்ணாக ஐடி, சரம் பெயர்) {this.id = id this.name = name }}

// சீரியலைஸ்

தொகுப்பு சீரியல் 1 இறக்குமதி java.io. * வகுப்பு தொடர்ந்து {பொது நிலையான வெற்றிட மெயின் (சரம் ஆர்க்ஸ் []) {முயற்சிக்கவும் {பணியாளர் emp1 = புதிய பணியாளர் (20110, 'ஜான்') பணியாளர் emp2 = புதிய பணியாளர் (22110, 'ஜெர்ரி') பணியாளர் emp3 = புதிய பணியாளர் (20120, 'சாம்') FileOutputStream fout = புதிய FileOutputStream ('output.txt') ObjectOutputStream out = new ObjectOutputStream (fout) out.writeObject (emp1) out.writeObject (emp2) out.writeObject (emp3). flush () out.close () System.out.println ('சீரியலைசேஷன் மற்றும் தேசமயமாக்கல் வெற்றிகரமாக செயல்படுத்தப்படுகிறது')} பிடிக்கவும் (விதிவிலக்கு இ) {System.out.println (e)}}}

வெளியீடு:

சீரியலைசேஷன் மற்றும் தேசமயமாக்கல் வெற்றிகரமாக செயல்படுத்தப்படுகிறது

தேசமயமாக்கல் : இது சீரியலைசேஷனின் தலைகீழ் செயல்முறையாகும், அங்கு அனுப்புநரிடமிருந்து ஒரு பொருளின் சீரியல் பைட் ஸ்ட்ரீம் பெறும் முடிவில் மீண்டும் உருவாக்கப்படுகிறது.

// தேசமயமாக்கல்

தொகுப்பு சீரியல் 1 இறக்குமதி java.io. ) பணியாளர் e2 = (பணியாளர்) in.readObject () பணியாளர் e3 = (பணியாளர்) in.readObject () System.out.println (e1.id + '' + e1.name) System.out.println (e2.id + '' + e2.name) System.out.println (e3.id + '' + e3.name) in.close ()} பிடிக்கவும் (விதிவிலக்கு இ) {System.out.println (e)}}}

வெளியீடு:

20110 ஜான்
22110 ஜெர்ரி

20120 சாம்

ஜாவாவில் சீரியலைசேஷனின் நன்மைகள் மற்றும் தீமைகள்

நன்மைகள்:

  • வரிசைப்படுத்தல் செயல்முறை ஒரு உள்ளமைக்கப்பட்ட சீரியலைசேஷனை இயக்க மூன்றாம் தரப்பு மென்பொருள் தேவையில்லை
  • சீரியலைசேஷன் செயல்முறை என்பது நிரூபிக்கப்பட்டுள்ளது எளிய மற்றும் சுலபம் புரிந்துகொள்வதற்கு

  • வரிசைப்படுத்தல் செயல்முறை உலகளாவிய வெவ்வேறு பின்னணியைச் சேர்ந்த டெவலப்பர்கள் அதை அறிந்திருக்கிறார்கள்

  • இது பயன்படுத்த எளிதானது மற்றும் தனிப்பயனாக்க எளிதானது

  • வரிசைப்படுத்தப்பட்ட தரவு நீரோடைகள் ஆதரவு குறியாக்கம், சுருக்க, அங்கீகாரம் மற்றும் பாதுகாப்பான ஜாவா கம்ப்யூட்டிங்

  • பல உள்ளன முக்கியமான தொழில்நுட்பங்கள் சீரியலைசேஷனை நம்பியுள்ளது.

குறைபாடுகள்:

  • DeSerialization ஆகும்போது பொருள்கள் உடையக்கூடியது மேலும் அவை திறம்பட DeSerialized என்பது உறுதியாகத் தெரியவில்லை.

  • சீரியலைசேஷன் நினைவக இடத்தை உருவாக்கும் போது அறிவிக்கப்பட்ட நிலையற்ற மாறிகள் அறிவிக்கப்படுகின்றன, ஆனால் கட்டமைப்பாளரை அழைக்கவில்லை, இதன் விளைவாக நிலையற்ற மாறிகள் துவங்குவதில் தோல்வி ஏற்படுகிறது நிலையான ஜாவா பாய்ச்சலுக்கான மாறுபாடு.

  • சீரியலைசேஷன் செயல்முறை திறமையற்றது நினைவக பயன்பாட்டின் அடிப்படையில்.

  • தேவைப்படும் பயன்பாடுகளில் பயன்படுத்த சீரியலைசேஷன் விரும்பத்தக்கது அல்ல ஒரே நேரத்தில் அணுகல் தேவை இல்லாமல் மூன்றாம் தரப்பு API கள் , ஒவ்வொரு SE க்கும் சீரியலைசேஷன் எந்த மாற்றம் கட்டுப்பாட்டு பொறிமுறையையும் வழங்காது.

  • வரிசைப்படுத்தல் செயல்முறை வழங்கத் தவறிவிட்டது நேர்த்தியான கட்டுப்பாடு பொருள்களை அணுக.

ஜாவாவில் சீரியலைசேஷனின் நடைமுறை எடுத்துக்காட்டுகள்

பரம்பரை பயன்படுத்தி சீரியலைசேஷன்

வழக்கு - 1: சூப்பர் கிளாஸ் சீரியலைசபிள் என்றால், முன்னிருப்பாக, அதன் துணைப்பிரிவுகளும் வரிசைப்படுத்தக்கூடியவை.

இந்த வழக்கில், தி துணைப்பிரிவு என்றால் முன்னிருப்பாக சீரியல் செய்யக்கூடியது சூப்பர் கிளாஸ் செயல்படுத்துகிறது வரிசைப்படுத்தக்கூடிய இடைமுகம்

தொகுப்பு சீரியலைசேஷன் இன்ஹெரிடென்ஸ் இறக்குமதி java.io.FileInputStream இறக்குமதி java.io.FileOutputStream இறக்குமதி java.io.ObjectInputStream இறக்குமதி java.io.ObjectOutputStream இறக்குமதி java.io.Serializable class ஒரு செயல்படுத்துகிறது சீரியலைசபிள் {int i public A (int i) i}} வகுப்பு B A {int j பொது B (int i, int j) {super (i) this.j = j}} பொது வகுப்பு சோதனை {பொது நிலையான வெற்றிட மெயின் (சரம் [] args) விதிவிலக்கு வீசுகிறது {B b1 = புதிய பி (200,400) System.out.println ('i =' + b1.i) System.out.println ('j =' + b1.j) FileOutputStream fos = new FileOutputStream ('abc.ser') ObjectOutputStream oos = புதிய ObjectOutputStream (fos) oos.writeObject (b1) oos.close () fos.close () System.out.println ('பொருள் வரிசைப்படுத்தப்பட்டுள்ளது') FileInputStream fis = புதிய FileInputStream ('abc.ser') ObjectInputStream ois = புதிய ObjectInputStream (fis) B b2 = (B) ois.readObject () ois.close () fis.close () System.out.println ('பொருள் தேசமயமாக்கப்பட்டுள்ளது') System.out.println ('i = '+ b2.i) System.out.println (' j = '+ b2.j)}}

வெளியீடு:

j = 20
பொருள் வரிசைப்படுத்தப்பட்டுள்ளது
பொருள் தேசமயமாக்கப்பட்டுள்ளது
i = 200
j = 400

வழக்கு - 2: ஒரு சூப்பர் கிளாஸ் சீரியலைசபிள் இடைமுகத்தை செயல்படுத்தாவிட்டாலும் கூட, சீரியலைசபிள் இடைமுகத்தை செயல்படுத்தினால் ஒரு துணைப்பிரிவை வரிசைப்படுத்தலாம்.

இந்த வழக்கில், என்றால் சூப்பர் கிளாஸ் செயல்படுத்தவில்லை வரிசைப்படுத்தக்கூடிய இடைமுகம் , பின்னர், பொருள்கள் துணைப்பிரிவு துணைப்பிரிவில் சீரியலைசபிள் இடைமுகத்தை செயல்படுத்துவதன் மூலம் கைமுறையாக வரிசைப்படுத்தலாம்.

தொகுப்பு சீரியலைசேஷன் இன்ஹெரிடென்ஸ் இறக்குமதி java.io.FileInputStream இறக்குமதி java.io.FileOutputStream இறக்குமதி java.io.ObjectInputStream இறக்குமதி java.io.ObjectOutputStream இறக்குமதி java.io.Serializable class superclass {int i public superclass (int i) {this.i = பொது சூப்பர் கிளாஸ் () {i = 50 System.out.println ('சூப்பர் கிளாஸ் கட்டமைப்பாளர்' என அழைக்கப்படுகிறது)}} வகுப்பு துணைப்பிரிவு சூப்பர் கிளாஸ் கருவிகளை விரிவுபடுத்துகிறது வரிசைப்படுத்தக்கூடிய {int j பொது துணைப்பிரிவு (int i, int j) {super (i) this.j = j class} பொது வகுப்பு சோதனை 2 {பொது நிலையான வெற்றிட மெயின் (சரம் [] ஆர்க்ஸ்) விதிவிலக்கு வீசுகிறது {துணைப்பிரிவு b1 = புதிய துணைப்பிரிவு (10, 20) System.out.println ('i =' + b1.i) System.out.println ( 'j =' + b1.j) FileOutputStream fos = new FileOutputStream ('output.ser') ObjectOutputStream oos = new ObjectOutputStream (fos) oos.writeObject (b1) oos.close () fos.close () System.out.println ('பொருள் வரிசைப்படுத்தப்பட்டுள்ளது') FileInputStream fis = புதிய FileInputStream ('output.ser') ObjectInputStream ois = new ObjectInputStream (fis) துணைப்பிரிவு b2 = (துணைப்பிரிவு) ois.readObject ( ) ois.close () fis.close () System.out.println ('பொருள் தேசமயமாக்கப்பட்டுள்ளது') System.out.println ('i =' + b2.i) System.out.println ('j =' + b2.j)}}

பொருள் வரிசைப்படுத்தப்பட்டுள்ளது
சூப்பர் கிளாஸ் கட்டமைப்பாளர் அழைக்கப்பட்டார்
பொருள் தேசமயமாக்கப்பட்டுள்ளது
i = 50
j = 20

வழக்கு - 3: சூப்பர் கிளாஸ் சீரியலைஸ் செய்யக்கூடியதாக இருந்தால், ஆனால் சீரியல் செய்ய துணைப்பிரிவு தேவையில்லை.

இந்த வழக்கில், துணைப்பிரிவின் சீரியலைசேஷனைத் தடுக்கலாம்செயல்படுத்துவதன் மூலம் writeObject () மற்றும் readObject () துணைப்பிரிவில் உள்ள முறைகள் மற்றும் அதை வீச வேண்டும் NotSerializableException இந்த முறைகளிலிருந்து.

தொகுப்பு சீரியல்மயமாக்கல் இறக்குமதி java.io.FileInputStream இறக்குமதி java.io.FileOutputStream இறக்குமதி java.io.IOException இறக்குமதி java.io.NotSerializableException இறக்குமதி java.io.ObjectInputStream இறக்குமதி java.io.ObjectOutputStream இறக்குமதி java.io.ObjectOutputStream இறக்குமதி i பொது பெற்றோர் (int i) {this.i = i}} வகுப்பு குழந்தை பெற்றோர் {int j பொது குழந்தை (int i, int j) {super (i) this.j = j} private void writeObject (ObjectOutputStream out) வீசுகிறது IOException new புதிய NotSerializableException ()} private void readObject (ObjectInputStream in) IOException வீசுகிறது new புதிய NotSerializableException ()}} பொது வகுப்பு சோதனை 3 {பொது நிலையான வெற்றிட பிரதான (சரம் [] args) வீசுதல் விதிவிலக்கு {குழந்தை b1 = புதிய குழந்தை (100, 200) System.out.println ('i =' + b1.i) System.out.println ('j =' + b1.j) FileOutputStream fos = new FileOutputStream ('abc.ser') ObjectOutputStream oos = new ObjectOutputStream ( fos) oos.writeObject (b1) oos.close () fos.close () System.out.println ('பொருள் ') FileInputStream fis = new FileInputStream (' abc.ser ') ObjectInputStream ois = new ObjectInputStream (fis) குழந்தை b2 = (குழந்தை) ois.readObject () ois.close () fis.close () System.out. println ('பொருள் தேசமயமாக்கப்பட்டது') System.out.println ('i =' + b2.i) System.out.println ('j =' + b2.j)}}

வெளியீடு:

i = 100
j = 200
நூல் 'மெயின்' java.io.NotSerializableException இல் விதிவிலக்கு
SerializationInheritance.child.writeObject (test3.java:48) இல்
at sun.reflect.NativeMethodAccessorImpl.invoke0 (நேட்டிவ் முறை)

நிலையான உறுப்பினரைப் பயன்படுத்தி சீரியலைசேஷன்

சீரியலைசேஷன் செயல்பாட்டில் நிலையான உறுப்பினர் புலத்தின் வரிசைப்படுத்தல் புறக்கணிக்கப்படுகிறது. வரிசைப்படுத்தல்பொருளின் சமீபத்திய நிலை தொடர்பானது. எனவே, ஒரு வகுப்பின் ஒரு குறிப்பிட்ட நிகழ்வோடு தொடர்புடைய தரவு மட்டுமேதொடர் ஆனால் நிலையான உறுப்பினர் புலம் அல்ல.

தொகுப்பு நிலை இறக்குமதி java.io. * வகுப்பு ஸ்டேட்டிகீரியல் வரிசைப்படுத்தக்கூடியது {நிலையான எண்ணாக நான் = 100 பொது நிலையான வெற்றிட மெயின் (சரம் ... ar) {StaticSerial ob = new StaticSerial () System.out.println ('சீரியலைசேஷன் நேரத்தில், நிலையான உறுப்பினருக்கு மதிப்பு உள்ளது: '+ i) முயற்சிக்கவும் {FileOutputStream fos = new FileOutputStream (' F: File.ser ') ObjectOutputStream oos = new ObjectOutputStream (fos) oos.writeObject (ob) oos.close () i = 99 FileInputStream புதிய FileInputStream ('F: File.ser') ObjectInputStream ois = new ObjectInputStream (fis) ob = (StaticSerial) ois.readObject () ois.close () System.out.println ('தேசமயமாக்கலுக்குப் பிறகு, நிலையான உறுப்பினருக்கு மதிப்பு உள்ளது:' + i)} பிடிக்கவும் (விதிவிலக்கு இ) {System.out.println (e)}}}

வெளியீடு:

வரிசைப்படுத்தலின் போது, ​​நிலையான உறுப்பினரின் மதிப்பு: 100
தேசமயமாக்கலுக்குப் பிறகு, நிலையான உறுப்பினரின் மதிப்பு: 99

வெளிப்புற இடைமுகம்

தி வெளிப்புற இடைமுகம் ஜாவாவில் சீரியலைசேஷனைப் போன்றது, ஆனால் ஒரே வித்தியாசம் என்னவென்றால், அது வழங்கக்கூடியது தனிப்பயனாக்கப்பட்ட வரிசைப்படுத்தல் ஸ்ட்ரீமில் புண் செய்ய வேண்டிய பொருட்களை நீங்கள் தீர்மானிக்க வேண்டும்.

வெளிப்புற இடைமுகம் java.io இல் கிடைக்கிறது, இது இரண்டு முறைகளை வழங்குகிறது:

  • public void writeExternal (ObjectOutput out) IOException ஐ வீசுகிறது
  • public void readExternal (ObjectInput in) IOException ஐ வீசுகிறது

வரிசைப்படுத்துதலுக்கும் வெளிப்புறமயமாக்கலுக்கும் இடையிலான முக்கிய வேறுபாடுகள் பின்வருமாறு:

ஜாவாவில் ஒரு அடி மூலக்கூறு என்ன
  • செயல்படுத்தல் : வெளிப்புறமயமாக்கக்கூடிய இடைமுகம் பயனரைத் தவிர்த்து விடுகிறது வெளிப்படையாக வரிசைப்படுத்தப்பட வேண்டிய பொருட்களைக் குறிப்பிடவும். சீரியலைசேஷன் இடைமுகத்தில் இருக்கும்போது, ​​அனைத்து பொருள்களும் மாறிகளும் வரிசைப்படுத்தப்படுகின்றன ரன் நேரம்.

  • முறைகள் : வெளிப்புற இடைமுகம் இரண்டு முறைகளைக் கொண்டுள்ளது, அதாவது:

    • writeExternal ()

    • readExternal ()

அதேசமயம், சீரியலைசபிள் இடைமுகத்தில் எந்த முறைகளும் இல்லை.

  • செயல்முறை: வெளிப்புற இடைமுகத்தில் வரிசைப்படுத்தல் செயல்முறை வழங்குகிறது தனிப்பயனாக்கம் வரிசைப்படுத்தல் செயல்முறைக்கு. ஆனால், சீரியலைசேஷன் இடைமுகம் வழங்கும் இயல்புநிலை வரிசைப்படுத்தல் செயல்முறை.

  • பின்னோக்கி இணக்கத்தன்மை மற்றும் கட்டுப்பாடு: வெளிப்புற இடைமுகம் பொருட்படுத்தாமல் சீரியலைசேஷனை ஆதரிக்கிறது பதிப்பு கட்டுப்பாடு சூப்பர் கிளாஸை சீரியல் செய்யும் போது பயனர் பொறுப்பேற்க வேண்டும் என்பதே ஒரே பிரச்சனை. மறுபுறம், சீரியலைசேஷன் இடைமுகத்திற்கு தேவைப்படுகிறது அதே பதிப்பு இரு முனைகளிலும் உள்ள ஜே.வி.எம் கள், ஆனால் இது சூப்பர் கிளாஸ் உள்ளிட்ட அனைத்து பொருள்கள் மற்றும் வகுப்புகளின் தானியங்கி வரிசைப்படுத்தலை ஒருங்கிணைக்கிறது.

  • பொது நோ-ஆர்க் கட்டமைப்பாளர்: வெளிப்புறமயமாக்கல் இடைமுகம் தேவை பொது நோ-ஆர்க் கட்டமைப்பாளர் வரிசைப்படுத்தப்பட்ட பொருளை மறுகட்டமைக்க. சீரியலைசேஷன் இடைமுகத்திற்கு நோ-ஆர்க் கட்டமைப்பாளர் தேவையில்லை, அதற்கு பதிலாக அது பயன்படுத்துகிறது பிரதிபலிப்பு வரிசைப்படுத்தப்பட்ட பொருள் அல்லது வகுப்பை புனரமைக்க.

தொகுப்பு கூடுதல் இறக்குமதி java.io. * வகுப்பு டெமோ java.io.Serializable {public int ஒரு பொது சரம் b பொது டெமோ (int a, string b) {this.a = a this.b = b}} வகுப்பு சோதனை {பொது நிலையான void main (சரம் [] args) {டெமோ பொருள் = புதிய டெமோ (1, 'எடுரேகாவுக்கு வருக') சரம் கோப்பு பெயர் = 'file.ser' முயற்சிக்கவும் {FileOutputStream கோப்பு = புதிய FileOutputStream (கோப்பு பெயர்) ObjectOutputStream out = புதிய ObjectOutputStream (கோப்பு) .writeObject (பொருள்) out.close () file.close () System.out.println ('பொருள் வரிசைப்படுத்தப்பட்டுள்ளது')} பிடிக்கவும் (IOException ex) {System.out.println ('IOException பிடிபட்டது')} டெமோ பொருள் 1 = பூஜ்ய முயற்சி {FileInputStream கோப்பு = புதிய FileInputStream (கோப்பு பெயர்) ObjectInputStream in = new ObjectInputStream (கோப்பு) object1 = (டெமோ) in.readObject () in.close () file.close () System.out.println ('பொருள் deserialized ') System.out.println (' a = '+ object1.a) System.out.println (' b = '+ object1.b)} catch (IOException ex) {System.out.println (' IOException பிடிபட்டது ')} பிடிக்கவும் (ClassNotFoundException ex) {System.out .println ('ClassNotFoundException பிடிபட்டது')}}}

நிலையற்ற முக்கிய சொல்

நிலையற்ற முக்கிய சொல் a ஒதுக்கப்பட்ட முக்கிய சொல் ஜாவாவில். இது ஒரு பயன்படுத்தப்படுகிறது மாறி மாற்றியமைத்தல் வரிசைப்படுத்தல் செயல்பாட்டின் போது. நிலையற்ற திறவுச்சொல்லுடன் ஒரு மாறியை அறிவிப்பது மாறியை சீரியலைஸ் செய்வதிலிருந்து தவிர்க்கிறது.

வரிசை பதிப்பு UID

வரிசைப்படுத்துதலின் செயல்முறை தொடங்குவதற்கு முன், ஒவ்வொரு வரிசைப்படுத்தக்கூடிய வர்க்கம் / பொருள் a உடன் தொடர்புடையது தனிப்பட்ட அடையாள எண் ஹோஸ்ட் இயந்திரத்தின் JVM ஆல் வழங்கப்படுகிறது. இந்த தனித்துவமான ஐடி அழைக்கப்படுகிறது வரிசை பதிப்பு UID . இந்த UID பெறும் முடிவில் JVM ஆல் அடையாளம் காண பயன்படுத்தப்படுகிறது, அதே பொருள் பெறும் முடிவில் DeSerialized செய்யப்படுகிறது என்பதை உறுதிப்படுத்த.

ஜாவாவில் சீரியலைசேஷனின் சர்ச்சைகள்

ஆரக்கிள் ஜாவாவிலிருந்து சீரியலைசேஷனை அகற்ற கட்டிடக் கலைஞர்கள் விரும்புகிறார்கள் 1997 இன் பயங்கரமான தவறு . பரபரப்பான ஆராய்ச்சிக்குப் பிறகு, ஆரக்கிள் டெவலப்பர்கள் சீரியலைசேஷன் நடைமுறையின் வடிவமைப்பில் சில குறைபாடுகளைக் கண்டறிந்தனர், இது தரவுக்கு அச்சுறுத்தலாக உள்ளது.

1997 ஆம் ஆண்டில்,மார்க் ரெய்ன்ஹோல்ட் கூறுகிறார் - “ சீரியலைசேஷனை ‘தொடர்ந்து கொடுக்கும் பரிசு’ என்று அழைக்க விரும்புகிறோம், மேலும் அது தொடர்ந்து கொடுக்கும் பரிசு பாதுகாப்பு பாதிப்புகள். அநேகமாக ஜாவா பாதிப்புகளில் மூன்றில் ஒரு பகுதியினர் பாதியிலேயே இருக்கக்கூடும். இது ஒரு வியக்கத்தக்க பாதிப்புகளின் ஆதாரமாகும், உறுதியற்ற தன்மைகளைக் குறிப்பிடவில்லை. ”.

ஜாவாவின் வரவிருக்கும் புதுப்பிப்புகளில் சீரியலைசேஷன் அகற்றப்படும் அல்லது மாற்றப்படும் வாய்ப்புகள் உள்ளன, மறுபுறம், ஜாவாவில் ஒரு தொடக்க, சீரியலைசேஷன் முடியவில்லை ஒரு இலட்சிய விருப்பமாக இருங்கள் அவர்களின் திட்டங்களில்

ஜாவாவில் சீரியலைசேஷனைப் பயன்படுத்தும் போது சிறந்த பயிற்சிகள்

பின்வருபவை பின்பற்ற வேண்டிய சில சிறந்த நடைமுறைகள்

  • இது பரிந்துரைக்கப்படுகிறது javadoc @ வரிசைப்படுத்தக்கூடிய புலங்களைக் குறிப்பதற்கான தொடர் குறிச்சொல்.
  • தி . இருக்க வேண்டும் வரிசைப்படுத்தப்பட்ட பொருள்களைக் குறிக்கும் கோப்புகளுக்கு நீட்டிப்பு பயன்படுத்த விரும்பப்படுகிறது.
  • எந்தவொரு நிலையான அல்லது நிலையற்ற புலங்களுக்கும் உட்படுத்த பரிந்துரைக்கப்படவில்லை இயல்புநிலை வரிசைப்படுத்தல்.
  • விரிவாக்கக்கூடிய வகுப்புகள் அது இல்லாவிட்டால் சீரியலைஸ் செய்யக்கூடாது கட்டாயமாகும்.
  • உள் வகுப்புகள் சீரியலைசேஷனில் ஈடுபடுவதைத் தவிர்க்க வேண்டும்.

இதன் மூலம், இந்த கட்டுரையின் முடிவுக்கு வந்துள்ளோம். ஜாவாவில் சீரியலைசேஷனின் அடிப்படைகள், அதன் வகைகள் மற்றும் அதன் செயல்பாடுகள் ஆகியவற்றை நீங்கள் புரிந்து கொண்டீர்கள் என்று நம்புகிறேன்.

பாருங்கள் உலகெங்கிலும் பரவியுள்ள 250,000 க்கும் மேற்பட்ட திருப்தியான கற்றவர்களின் வலைப்பின்னலுடன் நம்பகமான ஆன்லைன் கற்றல் நிறுவனமான எடுரேகாவால். ஜுவா டெவலப்பராக விரும்பும் மாணவர்கள் மற்றும் நிபுணர்களுக்காக எடுரேகாவின் ஜாவா ஜே 2 இஇ மற்றும் எஸ்ஓஏ பயிற்சி மற்றும் சான்றிதழ் பாடநெறி வடிவமைக்கப்பட்டுள்ளது. ஜாவா புரோகிராமிங்கில் ஒரு தொடக்கத்தைத் தருவதற்கும், முக்கிய மற்றும் மேம்பட்ட ஜாவா கருத்தாக்கங்களுக்கும், ஹைபர்னேட் & வசந்த .

எங்களுக்கு ஒரு கேள்வி கிடைத்ததா? இந்த “ஜாவாவில் சீரியலைசேஷன்” கட்டுரையின் கருத்துகள் பிரிவில் இதைக் குறிப்பிடுங்கள், விரைவில் நாங்கள் உங்களிடம் வருவோம்.