Što je eksternalizacija u Javi i kada je koristiti?

Eksternalizacija u Javi koristi se za spremanje Java klase u bajtni tok. Klasa koju treba eksternalizirati, mora implementirati sučelje za eksternalizaciju.

Java serializacija nije vrlo učinkovit. Akoako serializirate napuhane predmete koji imaju puno atributa i svojstava, ne želite serializirati. Tu dolazi do izražaja eksternalizacija u Javi. Ovaj članak pomoći će vam da shvatite kako funkcionira eksternalizacija.

Započnimo!





Što je eksternalizacija u Javi?

Eksternalizacija u Javi koristi se kad god želite prilagoditi serializacija mehanizam. Ako klasa implementira sučelje za eksternalizaciju, tada će se metoda izvršavati serializacijom objekta writeExternal () . Kada se eksternalizirani objekt rekonstruira na kraju prijemnika, instanca će se stvoriti pomoću konstruktora bez argumenta i ova metoda se naziva readExternal ().

To u osnovi služi u svrhu prilagođene serializacije, gdje možete odlučiti što ćete pohraniti u streamu.



Kada koristite eksternalizaciju?

Ako želite serializirati samo dio objekt , tada je najbolja opcija eksternalizacija. Morat ćete serializirati samo potrebna polja objekta.

Što je sučelje za eksternalizaciju?

Ako želite kontrolirati postupak čitanja i pisanja objekata tijekom procesa serializacije i de-serializacije, morate imati klasu objekta koja je implementirala sučelje java.io.Externalizable . Tek tada možete implementirati vlastiti kôd za čitanje i pisanje stanja objekta. Metode, readExternal () i writeExternal () definirani su Eksternalizirati sučelje .

Razumijemo ove metode u detalje.



readExternal (ObjectInput in)

Objekt sučelja implementira ovu metodu koja pomaže u obnavljanju njezinog sadržaja pozivanjem metoda odUnos podatakaza primitivne tipove. Također pozivareadObjectza objekte, nizove i nizove. Sada razgovarajmo o tome kako primijeniti ovu metodu readExternal.

Kao ovo readExternal () metoda uzima an Unos predmeta , možete koristiti njegovu metodu za čitanje stanja objekta iz temeljnog toka ovih pravila:

  • Za primitivne tipove možete koristiti readXXX () metode Unos podatakasučelje. Oni su naime, readBoolean (), readByte (), readInt (), readLong ().
  • Ako imate vrste objekata kao što su Nizovi, nizovi, bilo koji od vaših prilagođenih razreda , koristite readObject () metoda.

Primjer:

javna praznina readExternal (ObjectInput in) baca ClassNotFoundException, IOException {this.code = in.readInt () this.name = (String) in.readObject () this.password = (String) in.readObject () this.birthday = ( Datum) u.readObject ()}

Kao što ovdje možete vidjeti, uklonio sam serizaciju sljedećih atributa: koda, imena, lozinke i rođendana.

writeExternal (ObjectOutput out)

Objekt sučelja implementira ovu metodu kako bi spremio sadržaj pozivanjem metoda DataOutput za primitivne vrijednosti ili pozivanjem writeObject metoda ObjectOutput za objekte, nizove i nizove. Pogledajmo sada postupak implementacije.

Kao ovo writeExternal () metoda uzima anObjectOutput, možete koristiti njegovu metodu za upisivanje stanja objekta u temeljni tok slijedite ova pravila:

  • Za primitivne tipove koristite writeXXX () metode Izlaz podatakasučelje, poput writeBoolean (), writeByte (), writeInt (), writeLong ()itd.
  • Za tipove objekata poput , nizovi , svoje prilagođene klase, možete koristiti writeObject () metoda.

Primjer:

kakva je korist od serializacije u javi
javna praznina writeExternal (ObjectOutput out) baca IOException {out.writeInt (kod) out.writeObject (name) // napiši praznu lozinku: out.writeObject ('') out.writeObject (birthday)}

Međutim, ovdje možete vidjeti da sam serializirao sljedeće atribute: kôd, ime, lozinku i rođendan.

Sada, prelazeći na sljedeću temu u ovom članku o eksternalizaciji na Javi, razgovarajmo o glavnim razlikama između eksternalizacije i serializacije u Javi.

Eksternalizacija vs serializacija: Razlika između eksternalizacije i serializacije

Ovo je jedno od najčešće postavljanih pitanja .

ParametriEksternalizacijaSerijalizacija
PostupakKoristi postupak prilagođene serializacijeKoristi zadani postupak serializacije
UIDNije potreban UIDTreba mu serialVersionUID
SkladištenjeMorate pohraniti podatke koji imaju objektPredmet možete pohraniti izravno
PristupSučelje koje se može eksternalizirati omogućuje potpunu kontrolu postupka serializacije aplikacije.
Nema takvog pristupa

Nadam se da ste jasni s eksternalizacijom i serializacijom. Dakle, ovim smo došli do kraja ovog članka o 'Eksternalizaciji u Javi'. Nadam se da ste jasni s temama podijeljenim s vama.

Nadam se da se gore navedeni sadržaj pokazao korisnim za poboljšanje vašeg znanje. Nastavite čitati, istražujte!

Također pogledajte Edureka, pouzdane tvrtke za internetsko učenje s mrežom od više od 250 000 zadovoljnih učenika raširenih širom svijeta. Edurekin tečaj za obuku i certificiranje Java J2EE i SOA dizajniran je za studente i profesionalce koji žele biti programer Java. Tečaj je osmišljen kako bi vam pružio prednost u programiranju Java-a i osposobio vas za osnovne i napredne Java koncepte, zajedno s raznim poput Hibernate & Spring.