欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
為什么使用Serializable(序列化)
   經(jīng)??吹接行╊?lèi)調用了Serializable接口,而有些類(lèi)又沒(méi)有調用Serializable接口。那么什么情況下要調用Serializable接口。

    首先來(lái)了解一下Serializable。(類(lèi)通過(guò)實(shí)現 java.io.Serializable 接口以啟用其序列化功能。未實(shí)現此接口的類(lèi)將無(wú)法使其任何狀態(tài)序列化或反序列化。序列化接口Serializable沒(méi)有方法或字段,僅用于標識可序列化的語(yǔ)義)


    實(shí)現了Serializable接口的對象,可將它們轉換成一系列字節,并可在以后完全恢復回原來(lái)的樣子。這一過(guò)程亦可通過(guò)網(wǎng)絡(luò )進(jìn)行。這意味著(zhù)序列化機制能自動(dòng)補償操作系統間的差異。換句話(huà)說(shuō),可以先在Windows機器上創(chuàng )建一個(gè)對象,對其序列化,然后通過(guò)網(wǎng)絡(luò )發(fā)給一臺Unix機器,然后在那里準確無(wú)誤地重新“裝配”。不必關(guān)心數據在不同機器上如何表示,也不必關(guān)心字節的順序或者其他任何細節。


    serialization主要用來(lái)支持2種主要的特性:
    1、RMI(Remote method invocation)。RMI允許象在本機上一樣操作遠程機器上的對象。當發(fā)送消息給遠程對象和調用遠程方法時(shí),就需要用到serializaiton機制來(lái)發(fā)送參數和接收返回值。 
    2、保存信息。在某個(gè)時(shí)候把狀態(tài)信息保存起來(lái),以便以后某個(gè)時(shí)候能恢復這些狀態(tài)信息。
    Hibernaet和EJB中的實(shí)體Bean就用到了上面兩個(gè)特性。


    另外:保存的時(shí)候不僅能保存對象的副本,而且還會(huì )把對象里面所引用的對象也保存起來(lái),以此類(lèi)推。就像在編譯某個(gè)類(lèi)一樣,會(huì )涉及到所用到的所有類(lèi)。但是所引用的對象也必須是可序列化的,不然會(huì )拋NotSerializableException異常。

    
    下面來(lái)寫(xiě)個(gè)例子:(A和B類(lèi)都是可序列化的,WriteObj:將A序列化,ReadObj:將A反序列化) 
class A

class B

class WriteSeri

class ReadSeri
    首先,我們運行WriteObj,實(shí)現序列化,得到輸出結果
write obj :a.toString <a.name="my name is a" a.b.name="my name is B">
a
=woxingwosu.A@a90653 b=woxingwosu.B@de6ced
    然后我們再運行ReadObj,實(shí)現反序列化,得到輸出結果
read Object :a.toString <a.name="my name is a" a.b.name="my name is B">
a
=woxingwosu.A@a90653 b=woxingwosu.B@de6ced


    遺漏了一個(gè)問(wèn)題,就是標識版本的serialVersionUID。
    官方文檔:如果可序列化類(lèi)未顯式聲明 serialVersionUID,則序列化運行時(shí)將基于該類(lèi)的各個(gè)方面計算該類(lèi)的默認 serialVersionUID 值,如“Java(TM) 對象序列化規范”中所述。不過(guò),強烈建議 所有可序列化類(lèi)都顯式聲明 serialVersionUID 值,原因計算默認的 serialVersionUID 對類(lèi)的詳細信息具有較高的敏感性,根據編譯器實(shí)現的不同可能千差萬(wàn)別,這樣在反序列化過(guò)程中可能會(huì )導致意外的 InvalidClassException。因此,為保證 serialVersionUID 值跨不同 java 編譯器實(shí)現的一致性,序列化類(lèi)必須聲明一個(gè)明確的 serialVersionUID 值。還強烈建議使用 private 修改器顯示聲明 serialVersionUID(如果可能),原因是這種聲明僅應用于立即聲明類(lèi) -- serialVersionUID 字段作為繼承成員沒(méi)有用處。

    剛才寫(xiě)的例子中就沒(méi)有用到serialVersionUID,這時(shí)JVM會(huì )根據類(lèi)名、接口名、成員方法及屬性等來(lái)生成一個(gè)64位的哈希字段作為serialVersionUID。但是如果序列化和反序列化的JVM版本不一樣的話(huà),還是顯示寫(xiě)上serialVersionUID安全。

    以上是個(gè)人看法,如有錯誤之處,還望指出。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Java序列化之Serializable
Java程序員必備:序列化全方位解析
講真,下次打死我也不敢隨便改serialVersionUID了
Java技術(shù):serialVersionUID作用介紹
Java Serializable
面試官問(wèn):Java序列化和反序列化為什么要實(shí)現Serializable接口
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久