Hvad er eksternalisering i Java, og hvornår skal du bruge det?



Eksternalisering i Java bruges til at gemme en Java-klasse i en byte-stream. En klasse, der skal eksternaliseres, skal implementere eksterniserbar grænseflade.

Java-serialisering er ikke særlig effektiv. Hvisdu serialiserer oppustede objekter, der har mange attributter og egenskaber, og du ønsker ikke at serialisere. Det er her, eksternalisering i Java kommer ind i billedet. Denne artikel hjælper dig med at forstå funktionen af ​​eksternalisering.

Lad os begynde!





Hvad er eksternalisering i Java?

Eksternalisering i Java bruges, når du har brug for at tilpasse serialisering mekanisme. Hvis en klasse implementerer en eksterniserbar grænseflade, udføres serialisering af objektet ved hjælp af metoden writeExternal () . Når et eksternaliserbart objekt rekonstrueres ved modtagerens ende, oprettes en instans ved hjælp af ingen argumentkonstruktør, og denne metode kaldes readExternal ().

Dette tjener grundlæggende formålet med tilpasset serialisering, hvor du kan beslutte, hvad du skal gemme i en stream.



Hvornår bruger du eksternalisering?

Hvis du kun vil serieisere en del af en objekt , så er eksternalisering den bedste mulighed. Du bliver nødt til kun at serieisere de krævede felter i et objekt.

Hvad er eksterniseringsgrænsefladen?

Hvis du vil kontrollere processen med at læse og skrive objekterne under serie- og de-serialiseringsprocessen, skal du have objektets klasse implementeret grænsefladen java.io. kan udvides . Først derefter kan du implementere din egen kode til at læse og skrive objektets tilstande. Metoderne, readExternal () og writeExternal () er defineret af Eksternaliserbar interface .

Lad os forstå disse metoder i detaljer.



readExternal (ObjectInput in)

Formålet med grænsefladen implementerer denne metode, som hjælper med at gendanne dens indhold ved at kalde metoderne tilDatainputtil primitive typer. Det kalder ogsåreadObjecttil genstande, strenge og arrays. Lad os nu diskutere, hvordan du implementerer denne readExternal-metode.

Som dette readExternal () metoden tager en Indtastning af objekt , kan du bruge dens metode til at læse objektets tilstande fra den underliggende strøm af disse regler:

robot proces automatisering værktøj sammenligning
  • For primitive typer kan du bruge readXXX () metoder til Datainputinterface. De er nemlig readBoolean (), readByte (), readInt (), readLong ().
  • Hvis du har objekttyper som strenge, arrays, en af ​​dine brugerdefinerede klasser , bruger du readObject () metode.

Eksempel:

public void readExternal (ObjectInput in) kaster ClassNotFoundException, IOException {this.code = in.readInt () this.name = (String) in.readObject () this.password = (String) in.readObject () this.birthday = (( Dato) in.readObject ()}

Som du kan se her, har jeg de-serialiseret følgende attributter: kode, navn, adgangskode og fødselsdag.

writeExternal (ObjectOutput ud)

Interfacets genstand implementerer denne metode for at gemme indholdet ved at kalde dataene til DataOutput for primitive værdier eller kalde skrivObject metode til ObjectOutput til objekter, strenge og arrays. Lad os nu se på implementeringsprocessen.

Som dette writeExternal () metoden tager enObjectOutput, kan du bruge metoden til at skrive objekttilstande i den underliggende strøm, følg disse regler:

aws starter instans fra øjebliksbillede
  • Brug primitive typer til skrivXXX () metoder til Dataoutputinterface, ligesom skrivBoolsk (), skrivByte (), skrivInt (), skrivLang (), etc.
  • Til objekttyper som , arrays , dine tilpassede klasser, kan du bruge writeObject () metode.

Eksempel:

public void writeExternal (ObjectOutput out) kaster IOException {out.writeInt (code) out.writeObject (name) // skriv tom adgangskode: out.writeObject ('') out.writeObject (fødselsdag)}

Men her kan du se, at jeg har serieiseret følgende attributter: kode, navn, adgangskode og fødselsdag.

Når vi går videre til det næste emne i denne artikel om eksternalisering i Java, lad os diskutere de store forskelle mellem eksternalisering og serialisering i Java.

Eksternalisering vs serialisering: Forskel mellem eksternalisering og serialisering

Dette er en af ​​de hyppigst stillede .

ParametreEksternaliseringSerialisering
BehandleBruger tilpasset serialiseringsprocesBruger standardiseringsproces
UIDIntet behov for en UIDDet har brug for serialVersionUID
OpbevaringDu skal gemme de data, der har et objektDu kan gemme objektet direkte
AdgangDen eksterniserbare grænseflade giver fuld kontrol over serialiseringsprocessen til applikationen.
Ingen sådan adgang

Jeg håber, I er klare med eksternalisering vs serialisering. Så med dette kommer vi til slutningen af ​​denne artikel om “Eksternalisering i Java”. Jeg håber, at I er klare med de emner, der deles med jer.

Jeg håber, at ovennævnte indhold viste sig at være nyttigt til at forbedre din viden. Fortsæt med at læse, fortsæt med at udforske!

Tjek også ud af Edureka, et pålideligt online læringsfirma med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden. Edurekas Java J2EE- og SOA-uddannelses- og certificeringskursus er designet til studerende og fagfolk, der ønsker at være Java-udvikler. Kurset er designet til at give dig et forspring i Java-programmering og træne dig til både kerne- og avancerede Java-koncepter sammen med forskellige ligesom dvale og forår.