Kawm serialization mechanism hauv Java?

Serialize and de-serialize in Java

Serialize thiab de-serialize hauv Java

Txheej txheem cej luam:

Nws cov serialization mechanism yog ib tug siv zog ntawm Java. Qhov no yeej khoom Java serialization, qhov uas cov tus tsav haus dejcawv yog persisted ua ib theem ntawm bytes. Cov pheej cia yuav muab lawv tej ntaub ntawv, database los yog ntws. Thiab, deserialization yog cov txheej txheem rov qab, Qhov twg lub sequences ntawm yog dua converted rov qab mus rau khoom. Qhov tseem ceeb tshaj plaws yuav tsum nco ntsoov tias yog muab tso rau hauv nws lub xeev tam sim no thiab rov qab mus rau lub xeev ntawd xwb.

Nyob rau cov tshooj no, Peb yuav ua tiag tshawb cov tub ntxhais ntawm Java khoom serialization thiab kuj ua hauj lwm rau tej coding piv txwv.


 

Vim li cas peb yuav tsum tau serialization?

Txhua yam nyob rau hauv Java yog uas muaj tuaj raws li khoom. Li ntawd, Nyob rau hauv ib daim ntawv thov Java, muab nws stand-alone, enterprise los yog lwm hom ntawv, koj yuav tau nrog cov khoom. Cov khoom no muaj lawv lub xeev (Lub xeev no tsis muaj dab tsi tab sis tus nqi los yog cov ntaub ntawv muaj nyob rau hauv txhua lub sij hawm) thiab nws txawv ntawm lub sij hawm.

Nyob rau hauv daim ntawv thov, yog peb yuav tsum tau khaws cov ntaub ntawv, Peb yuav muab khaws cia rau hauv ib lub database los yog ntaub ntawv lawv (daim ntawv). Thiab, ces retrieve nws thaum twg yuav tsum tau txhaj. Tab sis npog, Qhov no feem ntau yog tuav thiab muab cov ntaub ntawv nyoos.

Tam sim no, yog peb yuav tsum khaws ib tsab khw (nrog nws tam sim no lub xeev thiab tus nqi) peb tsis siv database los yog ua ntawv thov ncaj qha. Vim hais tias lawv tsis to taub yam khoom, thiaj li, Peb yuav tsum tau khaws cia rau hauv daim ntawv ntawm no. No mechanism no kuj siv tau thaum peb yuav tsum tau hloov ib yam khoom dua network.







Tab sis npog, cov lus nug no – 'Peb ua li cas peb ua hauj lwm no cov hauj lwm no'? Serialization qhov teeb meem no yog ib qho teeb meem rau qhov teeb meem. Nws kuj tseem tau txhais raws li ib qho qauv, yuav siv tau los ntawm ib tog twg los mus pw ua ke los yog de-serialize ib yam khoom.

Tom qab no yog ob qhov tseem ceeb tshaj plaws rau uas serialization lug siv.

  • Persists khoom nyob rau hauv cia (Database, xovtooj, kwj deg)
  • Hloov khoom nyob network

Ib txhia ntsiab lus

Ua ntej yuav tsiv mus nyob rau lwm serialization mechanisms thiab code samples, Peb yuav tsum to taub ib co tswv yim yooj yim uas siv rau cov txheej txheem serialization.

serialversuid: Qhov no yeej yog ib tug serialized uas muaj serialized. Nws siv los xyuas kom meej tias cov serialized thiab de-serialized cov khoom yog ib yam. Qee zaus no UID kuj siv rau lub hom phiaj refactoring. Xav paub meej ntxiv yuav nrhiav tau ntawm no.

Marker Interface: Yuav siv cov serialization hauv Java los yog ua ib yam khoom serializable, koj yuav tau ua Serializable interface. Serializable yog ib tug marker interface, uas txhais tau tias nws yog ib qho kev cuam tshuam tsis muaj teb thiab txoj kev, kev coj ib co behaviour. Tseem muaj lwm yam marker interfaces muaj nyob rau hauv Java.

Transient Keyword: Qhov no yog ib qho tseem ceeb heev tseem ceeb nyob rau hauv Java. Tej zaum yuav tau khaws ib qho khoom thiab tsis txhob muaj tej daim teb uas muaj rhiab rhiab lus zoo li daim credit card, lo lus zais. Os, Peb nyuam qhuav yuav tsum txhais cov teb raws li 'pob tshwm’, thiab nws yuav tsis pub cov teb yuav rua thaum lub caij tus txheej txheem serialization.

Yam kwj txheej Stream hoob: Ob tug kwj dej kwj classes tseem ceeb heev rau serialization thiab cov txheej txheem de-serialization. Cov yog ObjectoutStream thiab Objectinputream. Peb yuav xyuas seb tus neeg siv cov lus hauv qab no code sample.

Serialization ua haujlwm – Tej code piv txwv

Hauv no coding piv txwv peb yuav muaj peb hoob kawm raws li hais hauv qab no.

  • java class sawv cev rau lub hom phiaj yuav tau serialized
  • java chav kawm ntawv serializing me nyuam kawm ntawv lub hom phiaj
  • Java chav kawm ntawv kom extract qhov tseem ceeb ntawm cov kawm rua me nyuam kawm ntawv

Tom qab kev kawm ntawv yog cov hoob kawm uas muaj tej hom phiaj. Thov nyeem tias qhov 'xuab zeb' daim teb yog cim li 'txuj ci tsis txhob txuag nws ua ib feem ntawm lub hom phiaj. Lwm cov teb yuav tsum rua raws li ib feem ntawm cov me nyuam kawm ntawv phij xej.







Listing1: Neeg Kawm Ntawv Cov Qauv Kawm

[chaws]

Pej xeem kawm ntawv cov neeg kawm ntawv yuav siv cov lus java.i.io.Serializable

{

Pej xeem Nplooj ntoos hlav lub npe;

Pej xeem ntaiv chaw nyob;

Pej xeem siv neeg siv;

Pej xeem transient string pwd;

pej xeem tsis txhob khaws cia()

{

System.out.println(“Me Nyuam Kawm Ntawv Paub ” + lub npe + ” ” + chaw nyob ” “+ neeg siv);

}

}

[/chaws]

Tam sim no, tus 2nd Hoob kawm yog tsim los mus xyuas tus me nyuam kawm ntawv phij xej raws li hauv qab no. Nws tsim ib tug neeg kawm ntawv khoom thiab txuag nws nyob rau hauv ib daim ntawv hu ua 'tub ntxhais kawm ntawv Cov ntaub ntawv hauv zos.

Listing2: Serializing Kawm Hoob Kawm

[chaws]

ntshuam java.io.*;

Pej xeem hoob Kawm Serializexample

{

pej xeem tsis muaj dabtsis loj zoo li qub(Txoj hlua [] args)

{

Tub ntxhais kawm ntawv = Neeg Kawm Ntawv tshiab();

st.name = “nkaus xwb”;

st.address = “se, TEB CHAWS USA”;

St.user = “Aln”;

st.pwd = “Aln123$”;

sim

{

//Tsim kom muaj cov ntaub ntawv tso zis

FileoutStream fileoutStr =

FileOutputStream tshiab(“me nyuam kawm ntawv”);

//Tsim cov kwj dej tso zis thiab sau tau cov khoom

ObjectOutStream objoutstr = Objectoutputream tshiab(fileoutStr);

objoutStr.writeObect(me nyuam);

//Kaw tag nrho cov streams

kaw objoutr...();

fileoutStr... kaw();

Lawv.tawm... printf(“Serialized cov ntaub ntawv serialized yog rua hauv ib daim ntawv – me nyuam kawm ntawv”);

}ntes(IOException exp)

{

exp.printStackTrace();

}

}

}

[/chaws]

Tso zis los ntawm cov hoob kawm no yog muaj li hauv qab no.

Serialization

Duab 1: Uas qhia serialization tso zis

Tus 3lawm Hoob kawm yog tsim los de-serialize qhov rua me nyuam kawm ntawv cov khoom thiab extract qhov tseem ceeb ntawm nws. Qhov tseem ceeb extracted qhov tseem ceeb yuav tau muaj nyob rau ntawm java console.


 

Listing3: De-serializing Me Nyuam Kawm Ntawv

[chaws]

ntshuam java.io.*;

Pej xeem hoob kawm Deserializexample

{

pej xeem tsis muaj dabtsis loj zoo li qub(Txoj hlua [] args)

{

//Tsim kom tau ib tug neeg kawm ntawv twj ywm

Tus tub ntxhais kawm ntawv = nuj;

sim

{

FileInStream FileStream = tshiab FileinStream(“me nyuam kawm ntawv”);

ObjectInStream objinstr = tshiab Objectinputream(Xov Tooj);

kauj ruam = (Menyuam) objinStr.readObect();

objinStr..ze ntawm();

FileInStr.kaw();

}ntes(IOException exp)

{

exp.printStackTrace();

rov qab mus;

}ntes(ClassNoTFoundException cexp)

{

System.out.println(“Cov menyuam kawm ntawv kawm tsis muaj nyob”);

cexp.printStackTrace();

rov qab mus;

}

System.out.println(“Deserialized Tub Ntxhais Kawm Ntawv…”);

System.out.println(“Lub npe: ” + st.name);

System.out.println(“Chaw nyob: ” + st.address);

System.out.println(“Neeg Siv Id: ” + U.S.user);

System.out.println(“Lo lus zais: ” + st.pwd);

}

}

[/chaws]

Tso zis los ntawm cov hoob kawm no yog muaj li hauv qab no. Thov nug tias cov zis tsis sau tus nqi ntawm cov password, raws li nws tau tus me li transient.

De-serialization

Duab 2: Uas qhia de-serialization tso zis

Tej lub neej tiag tiag dluab

Ntu no, Peb tau saib tej lub neej tiag dluab ntawm serialization. Nws yuav pab kom koj nkag siab txog qhov tseem ceeb thiab kev siv cov khoom persistence.

  • Xav ntawm ib daim ntawv thov kev ua si uas lub xeev no tseem ceeb heev. Tam sim no, Thaum ib tug neeg siv tshuav qhov kev ua si thaum twg kis tau lub sij hawm, Lub xeev no serialized thiab muab tso rau hauv tej yam cia. Thaum cov neeg siv xav rov pib qhov kev ua si dua, ib yam ntawm lub xeev yog recreated los ntawm txoj kev uas de-serialization. Li ntawd, tsis muaj dab tsi yog poob lawm hauv txoj kev tseem.
  • Lwm yam tseem ceeb yog ATM application. Thaum ib tug neeg siv thov ib co ntsoos ntsoos los ntawm ib lub tshuab ATM tshuab (yog ib tus neeg tau kev pab), Thov kom muab xa mus rau tus neeg muab kev pab raws li ib tug serialized. Rau qhov nyiaj kawg, txheej txheem (de-serialization) sau tseg thiab tes hauj lwm ua tau zoo. Qhov no yog ib qho piv txwv ntawm serialization ua haujlwm li network.
  • Tshuag khw hloov tshiab yog lwm cov piv txwv uas cov hloov tshiab yog muab raws li tus kwv serialized thiab txais kev pab rau cov neeg tau thaum twg thiaj yuav tsum tau txhaj.
  • Nyob rau hauv txhua daim ntawv thov txhua lub web site, Tus neeg siv cov ntaub ntawv tseem ceeb heev uas yuav tau tswj kom muaj. Vim hais tias, yog thaum twg los tau, Daim ntawv thov los yog internet tsis ua hauj lwm, Tus neeg siv yog disconnected los ntawm daim ntawv thov nyob nruab nrab ntawm tej yam kev ua. Tam sim no, Ib nrab-ua li cas yog muab ua ib serialized kwv yees, thiab kho thaum twg thiaj sib txuas ntxiv dua. Yog li ntawd, Tus neeg siv yuav tau los ntawm qhov chaw uas nws tshuav nws txoj kev.

Xaus:

Java serialization yog ib qho tseem ceeb heev rau kev kawm. Nyob rau cov tshooj no, Peb tau tham txog serialization hauv lus nrog nws cov ntsiab lus tseem ceeb. Peb muaj kuj piav ib coding piv txwv qhia li cas serialization tej hauj lwm. Piv txwv li yuav enhanced los sis hloov kom hloov tej hauj lwm ntxiv. Zuag qhia tag nrho, serialization yog yooj ywm heev nyob rau hauv qhov xwm, Tiam sis tus developers yuav tsum paub txog cov tricks thiab tswv yim kom siv nws kom zoo. Vam cia no tsab xov xwm no yuav qhia rau koj tias koj yuav txav mus rau pem hauv ntej.








 

============================================= ============================================== Yuav zoo TechAlpine phau ntawv rau Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Txaus siab rau qhov blog? Tshaj tawm lus thov :)

Follow by Email
LinkedIn
LinkedIn
Share