十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
本篇內(nèi)容介紹了“java序列化的知識(shí)點(diǎn)介紹”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
序列化是將對(duì)象的狀態(tài)信息轉(zhuǎn)換為可以儲(chǔ)存或者傳輸?shù)男问降倪^(guò)程。因此在Java開(kāi)發(fā)中,序列化是一個(gè)非常重要的環(huán)節(jié)。Java序列化可以在JVM停止運(yùn)行之后能夠保存(持久化)制定的對(duì)象,并在將來(lái)重新讀取被保存的對(duì)象。
使用Java對(duì)象序列化,在保存對(duì)象時(shí),會(huì)把其狀態(tài)保存為一組字節(jié),在未來(lái),再將這些字節(jié)組裝成對(duì)象。必須注意地是,對(duì)象序列化保存的是對(duì)象的"狀態(tài)",即它的成員變量。由此可知,對(duì)象序列化不會(huì)關(guān)注類中的靜態(tài)變量。
如何序列化
只要一個(gè)類實(shí)現(xiàn)了java.io.Serializable接口,那么它就可以被序列化。
serialversionuid作用
serialVersionUID適用于Java的序列化機(jī)制。簡(jiǎn)單來(lái)說(shuō),Java的序列化機(jī)制是用判斷類的serialVersionUID來(lái)驗(yàn)證版本一致性的。在進(jìn)行反序列化時(shí),JVM會(huì)把傳來(lái)的字節(jié)流中的serialVersionUID與本地相應(yīng)實(shí)體類的serialVersionUID進(jìn)行比較,如果相同就認(rèn)為是一致的,可以進(jìn)行反序列化,否則就會(huì)出現(xiàn)序列化版本不一致的異常,即是InvalidCastException。
serialversionuid如何產(chǎn)生
在eclipse或者idea中,當(dāng)實(shí)現(xiàn)了Serializable接口以后,在對(duì)應(yīng)行 左端會(huì)有一個(gè)黃色小嘆號(hào),點(diǎn)擊,選擇generaterd serial version ID,就可以生產(chǎn)如圖所示的id。
private static final long serialVersionUID = 1518830894504324355L;
代碼實(shí)例
序列化及反序列化相關(guān)知識(shí)
1、在Java中,只要一個(gè)類實(shí)現(xiàn)了java.io.Serializable接口,那么它就可以被序列化。
2、依靠ObjectOutputStream和ObjectInputStream對(duì)對(duì)象進(jìn)行序列化及反序列化
3、虛擬機(jī)是否允許反序列化,不僅取決于類路徑和功能代碼是否一致,一個(gè)非常重要的一點(diǎn)是兩個(gè)類的序列化 ID 是否一致(就是 private static final long serialVersionUID)
4、序列化并不保存靜態(tài)變量。
5、要想將父類對(duì)象也序列化,就需要讓父類也實(shí)現(xiàn)Serializable 接口。
6、Transient 關(guān)鍵字的作用是控制變量的序列化,在變量聲明前加上該關(guān)鍵字,可以阻止該變量被序列化到文件中,在被反序列化后,transient 變量的值被設(shè)為初始值,如 int 型的是 0,對(duì)象型的是 null。
7、服務(wù)器端給客戶端發(fā)送序列化對(duì)象數(shù)據(jù),對(duì)象中有一些數(shù)據(jù)是敏感的,比如密碼字符串等,希望對(duì)該密碼字段在序列化時(shí),進(jìn)行加密,而客戶端如果擁有解密的密鑰,只有在客戶端進(jìn)行反序列化時(shí),才可以對(duì)密碼進(jìn)行讀取,這樣可以一定程度確保序列化對(duì)象的數(shù)據(jù)安全。
“java序列化的知識(shí)點(diǎn)介紹”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。