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.
- Što je eksternalizacija u Javi?
- Kada koristiti eksternalizaciju?
- Što je sučelje za eksternalizaciju?
- Razlika između eksternalizacije i serializacije
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 .
Parametri | Eksternalizacija | Serijalizacija |
Postupak | Koristi postupak prilagođene serializacije | Koristi zadani postupak serializacije |
UID | Nije potreban UID | Treba mu serialVersionUID |
Skladištenje | Morate pohraniti podatke koji imaju objekt | Predmet možete pohraniti izravno |
Pristup | Suč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.