Mitä Java-ulkoistaminen on ja milloin sitä käytetään?



Java-ulkoistamista käytetään Java-luokan tallentamiseen tavuvirtaan. Luokan, joka on ulkoistettava, on käytettävä ulkoistettavaa käyttöliittymää.

Java-sarjanumerointi ei ole kovin tehokas. JosSarjaat paisuneet objektit, joilla on paljon määritteitä ja ominaisuuksia, et halua sarjata. Tässä tulee Java-ulkoistaminen kuvaan. Tämä artikkeli auttaa sinua ymmärtämään ulkoistamisen toimintaa.

Aloitetaanpa!





Mitä Java-ulkoistaminen on?

Ulkoistamista Javassa käytetään aina, kun sinun on mukautettava sarjallisuus mekanismi. Jos luokka toteuttaa ulkoistettavan käyttöliittymän, objektin sarjallisuus tehdään menetelmällä writeExternal () . Kun ulkoistettava objekti rekonstruoidaan vastaanottimen päässä, luodaan ilmentymä käyttämällä argumenttivapaata konstruktoria ja tätä menetelmää kutsutaan readExternal ().

Tämä palvelee periaatteessa mukautettua sarjoitusta, jossa voit päättää, mitä tallennetaan streamiin.



Milloin käytät ulkoistamista?

Jos haluat serialisoida vain osan esine , silloin ulkoistaminen on paras vaihtoehto. Sinun on järjestettävä vain objektin vaaditut kentät.

Mikä on ulkoistamisrajapinta?

Jos haluat hallita objektien luku- ja kirjoitusprosessia sarjallisuuden ja sarjoituksen poistamisen aikana, objektiluokassa on oltava käyttöliittymä java.io. ulkoistettavissa . Vasta sitten voit ottaa käyttöön oman koodisi lukemaan ja kirjoittamaan objektin tilat. Menetelmät, readExternal () ja writeExternal () määritetään Ulkoistettavissa käyttöliittymä .

big data kehittäjän työn kuvaus

Ymmärretään nämä menetelmät yksityiskohtaisesti.



readExternal (ObjectInput sisään)

Rajapinnan kohde toteuttaa tämän menetelmän, joka auttaa palauttamaan sen sisällön kutsumalla menetelmiäDatan syöttöprimitiivisille tyypeille. Se myös soittaareadObjectesineitä, merkkijonoja ja taulukoita varten. Keskustellaan nyt tämän readExternal-menetelmän toteuttamisesta.

Kuten tämä readExternal () menetelmä vie Objektin syöttö , voit käyttää sen menetelmää lukemaan objektin tilat näiden sääntöjen taustalla olevasta virrasta:

java-laajennusten ja -välineiden välinen ero
  • Alkeistyypeille voit käyttää readXXX () menetelmät Datan syöttökäyttöliittymä. Ne ovat nimittäin readBoolean (), readByte (), readInt (), readLong ().
  • Jos sinulla on objektityyppejä, kuten merkkijonot, taulukot, mikä tahansa mukautuksesi luokat , käytät readObject () menetelmä.

Esimerkki:

public void readExternal (ObjectInput in) heittää ClassNotFoundException, IOException {this.code = in.readInt () this.name = (String) in.readObject () this.password = (String) in.readObject () this.birthday = ( Päivämäärä) in.readObject ()}

Kuten voit nähdä täältä, olen poistanut sarjallisuuden seuraavista määritteistä: koodi, nimi, salasana ja syntymäpäivä.

writeExternal (ObjectOutput out)

Käyttöliittymän kohde toteuttaa tämän menetelmän sisällön tallentamiseksi kutsumalla primitiivisiä arvoja DataOutput-menetelmillä tai kutsumalla writeObject ObjectOutput-menetelmä esineille, merkkijonoille ja matriiseille. Katsotaanpa nyt täytäntöönpanoprosessia.

Kuten tämä writeExternal () menetelmä vieObjectOutput, voit käyttää sen tapaa kirjoittaa objektin tilat taustavirtaan noudattamalla näitä sääntöjä:

  • Käytä primitiivisiä tyyppejä kirjoitaXXX () menetelmät DataOutputkäyttöliittymä, kuten writeBoolean (), writeByte (), writeInt (), writeLong (), jne.
  • Kohdetyypeille, kuten , taulukot , mukautetut luokat, voit käyttää writeObject () menetelmä.

Esimerkki:

public void writeExternal (ObjectOutput out) heittää IOException {out.writeInt (koodi) out.writeObject (nimi) // kirjoita tyhjä salasana: out.writeObject ('') out.writeObject (syntymäpäivä)}

Täällä näet kuitenkin, että olen sarjoittanut seuraavat määritteet: koodi, nimi, salasana ja syntymäpäivä.

Siirrymme nyt tämän Java-ulkoistamisen artikkelin seuraavaan aiheeseen, keskustelemme suurimmista eroista Java-ulkoistamisen ja sarjallisuuden välillä.

yhdistä lajittelu c ++ taulukko

Ulkoistaminen vs sarjallisuus: Ero ulkoistamisen ja sarjallisuuden välillä

Tämä on yksi yleisimmin kysytyistä .

ParametritUlkoistaminenSarjaus
ProsessiKäyttää Custom Serialization -prosessiaKäyttää oletusarvoista sarjakuvaprosessia
UIDEi tarvetta UID: lleSe tarvitsee serialVersionUID
VarastointiSinun on tallennettava tiedot, joilla on esineVoit tallentaa objektin suoraan
PääsyUlkopuolinen käyttöliittymä tarjoaa täydellisen hallinnan sarjallisuusprosessista sovellukseen.
Ei tällaista pääsyä

Toivottavasti teillä on selvä ulkoistaminen vs sarjallisuus. Joten tämän kanssa olemme päässeet tämän artikkelin 'Ulkoistaminen Java-sovellukseen' loppuun. Toivon, että olette selvillä kanssanne jaetuista aiheista.

Toivon, että yllä mainitusta sisällöstä on osoittautunut hyödyllistä parantaa tietoa. Jatka lukemista, jatka tutkimista!

Katso myös Edureka, luotettava verkko-oppimisyritys, jolla on yli 250 000 tyytyväisen oppijan verkosto, joka levisi ympäri maailmaa. Edurekan Java J2EE- ja SOA-koulutus- ja sertifiointikurssi on suunniteltu opiskelijoille ja ammattilaisille, jotka haluavat olla Java-kehittäjiä. Kurssi on suunniteltu antamaan sinulle etumatka Java-ohjelmointiin ja kouluttamaan sekä ydin- että edistyneitä Java-käsitteitä sekä erilaisia kuten horrostila ja kevät.