GeeksforGeeks (Suomi)

Serialization on mekanismi muuntaa objektin tilan osaksi tavuvirran. Deserialization on käänteinen prosessi, jossa tavuvirran käytetään luoda todellinen Java-objekti muistissa. Tätä mekanismia käytetään esineen säilymiseen.

byte stream luotu on alustasta riippumaton. Niin, esine sarjoittaa yhdellä alustalla voidaan deserialized eri alustalla.,

Java-objektin sarjallistamiseksi toteutamme java.io.Serializable-käyttöliittymän.
ObjectOutputStream-luokka sisältää writeObject () – menetelmän objektin sarjallistamiseen.

public final void writeObject(Object obj) throws IOException

ObjectInputStream luokka sisältää readObject() menetelmä android esine.

public final Object readObject() throws IOException, ClassNotFoundException

Edut Serialization
1. Esineen tilan tallentaminen / säilyminen.
2. Kulkemaan kohteen verkon yli.

vain näiden luokkien objektit voidaan sarjalisoida, jotka toteuttavat java.io.Serializable-rajapinnan.,
Serializable on merkkiliittymä (jolla ei ole datajäsentä ja-menetelmää). Sitä käytetään ”merkitsemään” java-luokkia, jotta näiden luokkien objektit voivat saada tiettyjä valmiuksia. Muita esimerkkejä merkkiliittymistä ovat: – Kloneable ja Remote.

osoittaa muistavansa
1. Jos vanhemman luokan on toteuttaa Serializable-rajapinta sitten lapsi luokan ei tarvitse toteuttaa sitä, mutta päinvastoin, ei ole totta.
2. Vain ei-staattiset datan jäsenet tallennetaan Serialisointiprosessin kautta.
3. Staattisen datan jäseniä ja ohimeneviä tiedon jäseniä ei tallenneta Sarjalisaatioprosessin kautta.,Joten, jos et halua tallentaa arvoa ei-staattinen data jäsen sitten tehdä se ohimenevä.
4. Objektin konstruktoria ei koskaan kutsuta, kun esine on deserialisoitu.
5. Liitännäisobjekteilla on oltava sarjamuotoinen käyttöliittymä.
Esimerkiksi :

class A implements Serializable{// B also implements Serializable// interface.B ob=new B(); }

SerialVersionUID
Serialization runtime associates version numero jokaisen Serializable luokka kutsutaan SerialVersionUID, jota käytetään aikana Deserialization tarkistaa, että lähettäjän ja vastaanotin on sarjoittaa objekti on ladattu luokat, että esine, joka on yhteensopiva suhteen serialization., Jos vastaanotin on ladattu luokan objektin, joka on eri UID kuin vastaava lähettäjän luokka, Deserialization johtaa InvalidClassException. Sarjamuotoinen luokka voi julistaa oman UID: nsä yksiselitteisesti ilmoittamalla kenttänimen.
sen on oltava staattinen, lopullinen ja tyypiltään pitkä.
i.,e – TAHANSA-PÄÄSY-NÄPPÄINTÄ staattinen lopullinen pitkä serialVersionUID=42L;

Jos serializable luokka ei nimenomaisesti julistaa serialVersionUID, sitten serialization runtime laskee oletuksena yksi, että luokka perustuu eri osa-luokassa, kuten on kuvattu Java Object Serialization Erittely. Kuitenkin se on erittäin suositeltavaa, että kaikki serializable-luokat nimenomaisesti julistaa serialVersionUID arvo, koska sen laskenta on erittäin herkkä luokan tiedot, jotka voivat vaihdella riippuen compiler toteutukset, mitään muutosta luokka-tai käyttämällä eri tunnus voi vaikuttaa sarjatiedot.,

on myös suositeltavaa käyttää yksityistä modifieria UID-hoitoon, koska siitä ei ole hyötyä periytyvänä jäsenenä.

serialver
serialver on työkalu, joka tulee JDK. Siitä saadaan sarjaversionuid-numero Java-luokille.,
Voit suorita seuraava komento saada serialVersionUID

serialver

Esimerkki 1:



Lähtö :

Object has been serializedObject has been deserialized a = 1b = geeksforgeeks

Esimerkki 2:



tuloksena on:

Object has been serializedData before Deserialization.name = abage = 20a = 2b = 1000Object has been deserializedData after Deserialization.name = abage = 20a = 0b = 2000

Kuvaus Tuotos:
Olet nähnyt, kun android objektin arvot a ja b on muuttunut. Syy a oli merkitty ohimeneväksi ja b oli staattinen.,
Siinä tapauksessa ohimenevä muuttujat:- muuttuja määritellään ohimenevä avainsana ei ole sarjoitettu aikana serialization prosessi.Tämä muuttuja alustetaan oletusarvolla deserialisaation aikana. (esim.esineille se on nolla, int se on 0).
staattisten muuttujien tapauksessa: – muuttuja, joka on määritelty staattisella avainsanalla, ei serialisoidu serialisaatioprosessin aikana.Tämä muuttuja Ladataan luokassa määritellyllä nykyarvolla deserialisaation aikana.

tämän artikkelin ovat kirjoittaneet Mehak Narang ja Shubham Juneja., Jos pidät GeeksforGeeks ja haluat edistää, voit myös kirjoittaa artikkeli käyttää contribute.geeksforgeeks.org tai lähetä artikkeli [email protected]. Katso artikkeli näy GeeksforGeeks tärkein sivu ja auttaa muita Nörttejä.
kirjoita kommentteja, jos havaitset jotain virheellistä tai haluat jakaa lisätietoa edellä käsitellystä aiheesta.

Attention reader! Älä lopeta oppimista nyt., Saada käsiinsä kaikki tärkeät Java Foundation ja Kokoelmat käsitteitä Perusteet Java-ja Java Kokoelmat Kurssin opiskelija-ystävällinen hinta ja tullut teollisuuden valmis.

Artikkeli Tagit :

Java
Käytännössä Tagit :

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *