GeeksforGeeks (Magyar)

Serialization is a mechanism of converting the state of an object into a byte stream. A Deserialization a fordított folyamat, ahol a bájtfolyamot használják a tényleges Java objektum újrateremtésére a memóriában. Ez a mechanizmus az objektum fennmaradására szolgál.

a létrehozott bájtfolyam platformfüggetlen. Tehát az egyik platformon szerializált objektum egy másik platformon deserializálható.,

egy Java objektum sorozatosításához implementáljuk a java. io. Serializable interfészt.
Az ObjectOutputStream osztály writeObject() metódust tartalmaz egy objektum sorosításához.

public final void writeObject(Object obj) throws IOException

az ObjectInputStream osztály tartalmaz readObject() metódust egy objektum dezerializálására.

public final Object readObject() throws IOException, ClassNotFoundException

1. Egy objektum mentéséhez / fennmaradásához.
2. Egy objektum hálózaton keresztüli utazása.

csak azoknak az osztályoknak az objektumai sorolhatók be, amelyek Java.io.Serializable interfészt implementálnak.,
Serializable egy marker interfész (nincs adattag és módszer). A java osztályok “megjelölésére” használják, hogy ezeknek az osztályoknak az objektumai bizonyos képességeket kapjanak. A marker interfészek további példái:- Cloneable és Remote.

1. Ha egy szülő osztály végrehajtotta Serializable interface majd child class nem kell végrehajtani, de fordítva nem igaz.
2. Csak a nem statikus adattagok kerülnek mentésre Sorosítási folyamaton keresztül.
3. A statikus adattagok és a tranziens adattagok nem kerülnek mentésre Sorosítási folyamaton keresztül.,Tehát, ha nem akarja menteni egy nem statikus adattag értékét, akkor tranziensvé tegye.
4. Az objektum konstruktorát soha nem hívják, ha egy objektum deserialized.
5. A társított objektumoknak Sorosítható felületet kell végrehajtaniuk.
Példa :

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

SerialVersionUID
A Sorszámozás runtime munkatársai egy változat száma minden Serializable osztályt, amit egy SerialVersionUID, amely során használt Deserialization, hogy ellenőrizze, hogy a feladó, illetve vevőt, egy sorszámozott tárgy van töltve osztályok az a tárgy, amely kompatibilis a tekintetben, hogy sorozatkészítés., Ha a reciever betöltött egy osztályt az objektumhoz, amely eltér az UID-től, mint a megfelelő küldő osztályé, a Deserialization InvalidClassException-t eredményez. Egy Sorosítható osztály kifejezetten deklarálhatja saját UID-jét egy mezőnév deklarálásával.
statikusnak, véglegesnek és hosszúnak kell lennie.
i.,e-ANY-ACCESS-MODIFIER static final long serialVersionUID=42L;

Ha egy sorosítható osztály nem deklarálja kifejezetten a serialVersionUID-ot, akkor a serialization runtime kiszámítja az alapértelmezett osztályt az osztály különböző szempontjai alapján, a Java Object Serialization specifikációban leírtak szerint. Erősen ajánlott azonban, hogy minden szerializálható osztály kifejezetten deklarálja a serialVersionUID értéket, mivel számítása nagyon érzékeny az osztály részleteire, amelyek a fordító implementációitól függően változhatnak, az osztály bármilyen változása vagy a különböző azonosító használata befolyásolhatja a serializált adatokat.,

azt is javasoljuk, hogy privát módosító UID mivel ez nem hasznos, mint örökölt tagja.

serialver
a serialver egy eszköz, hogy jön a JDK. Ezt használják, hogy serialVersionUID számot Java osztályok.,
akkor futtassa a következő parancsot serialVersionUID

serialver

1. Példa:



Teljesítmény :

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

2. Példa:



Teljesítmény:

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

Leírás a Kimenet:
látták, míg deserializing az objektum az értékek, illetve a b megváltozott. Az a-T tranziensként jelölték meg, a b-t pedig statikusnak.,
tranziens változók esetén:- a tranziens kulcsszóval definiált változó nem sorosizálódik a szerializációs folyamat során.Ez a változó lesz inicializálva alapértelmezett érték alatt deserialization. (pl.: objektumok esetén null, int esetén 0).
statikus változók esetén: – a statikus kulcsszóval definiált változó nem sorosizálódik a szerializációs folyamat során.Ez a változó a dezerializáció során az osztályban meghatározott aktuális értékkel lesz betöltve.

ezt a cikket Mehak Narang és Shubham Juneja írta., Ha tetszik GeeksforGeeks szeretne hozzájárulni, akkor is írni egy cikket segítségével contribute.geeksforgeeks.org vagy küldje el a cikket [email protected]. lásd a cikket megjelenő GeeksforGeeks főoldalon, és segítsen más Geeks.
kérjük, írjon megjegyzéseket, ha valami helytelent talál, vagy több információt szeretne megosztani a fent tárgyalt témáról.

figyelem olvasó! Ne hagyja abba a tanulást., Szerezd meg az összes fontos Java Foundation and Collections fogalmak alapjait Java és Java Collections természetesen egy diák-barát áron, és lesz ipar kész.

cikk címkék:

Java
gyakorlati címkék:

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük