java為什么要實(shí)現(xiàn)序列化 為什么JAVA對(duì)象需要實(shí)現(xiàn)序列化?
為什么JAVA對(duì)象需要實(shí)現(xiàn)序列化?序列化實(shí)際上很容易理解。如果你現(xiàn)在正在做一個(gè)項(xiàng)目,項(xiàng)目被分成不同的小組,而其他小組成員不在同一個(gè)城市,你怎么把你寫的那些課程交給其他小組成員呢?此時(shí),我們需要使用序列
為什么JAVA對(duì)象需要實(shí)現(xiàn)序列化?
序列化實(shí)際上很容易理解。如果你現(xiàn)在正在做一個(gè)項(xiàng)目,項(xiàng)目被分成不同的小組,而其他小組成員不在同一個(gè)城市,你怎么把你寫的那些課程交給其他小組成員呢?此時(shí),我們需要使用序列化。簡單地說:序列化就是將內(nèi)存中的類或?qū)ο螅帉懙念惗即鎯?chǔ)在內(nèi)存中)更改為可以存儲(chǔ)在存儲(chǔ)介質(zhì)中的流。將類序列化為流后,可以通過Internet將其傳輸給其他人。您還可以將其他人的序列化流反序列化為內(nèi)存中的對(duì)象。就這樣
Java的“對(duì)象序列化”可以將一個(gè)實(shí)現(xiàn)可序列化接口的對(duì)象轉(zhuǎn)換成一組字節(jié),這樣當(dāng)您將來想使用這個(gè)對(duì)象時(shí),就可以恢復(fù)字節(jié)數(shù)據(jù)并相應(yīng)地重建對(duì)象。即使在跨網(wǎng)絡(luò)環(huán)境中也是如此,這意味著序列化可以自動(dòng)補(bǔ)償操作系統(tǒng)中的差異。換句話說,您可以在windows機(jī)器上創(chuàng)建一個(gè)對(duì)象,序列化它,然后通過網(wǎng)絡(luò)將它傳輸?shù)経NIX機(jī)器,然后在那里重建它。您不必?fù)?dān)心數(shù)據(jù)在不同平臺(tái)上的表示方式、字節(jié)順序或任何其他細(xì)節(jié)。
javaBean為什么要實(shí)現(xiàn)序列化Serializable接口?
序列化是一種用于處理對(duì)象流的機(jī)制,即流化對(duì)象的內(nèi)容。它可以讀寫流對(duì)象,也可以在網(wǎng)絡(luò)間傳輸流對(duì)象。序列化是為了解決對(duì)象流上的讀寫操作所引起的問題。
可序列化實(shí)現(xiàn):為要序列化的類實(shí)現(xiàn)可序列化接口,該類沒有要實(shí)現(xiàn)的方法。Implementsserializable只是標(biāo)記對(duì)象是可序列化的。然后,使用輸出流(如fileoutputstream)構(gòu)造objectoutputstream對(duì)象,然后使用objectoutputstream對(duì)象的writeob。object(objectobj)方法可以寫出參數(shù)為obj的對(duì)象(即保存其狀態(tài)),并使用輸入流還原它。面向?qū)ο缶幊碳夹g(shù)中“對(duì)象”的生命周期不僅僅存在于編碼和運(yùn)行時(shí)間中。而且有時(shí)需要轉(zhuǎn)移到其他設(shè)備上通過網(wǎng)絡(luò)運(yùn)行;有時(shí)需要“持久化”到文件、數(shù)據(jù)庫等媒體上保存,必要時(shí)再“恢復(fù)”到內(nèi)存中運(yùn)行。對(duì)象序列化和反序列化就是為此而生的。