国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
比較java.io.Externalizable和java.io.Serializable.doc

即使你沒有用過對象序列化(serialization),你可能也知道它。但你是否知道 Java 還支持另外一種形式的對象持久化,外部化(externalization)?
下面是序列化和外部化在代碼級的關(guān)聯(lián)方式:

public interface Serializable {}

public interface Externalizable extends Serializable {
 void readExternal(ObjectInput in);
 void writeExternal(ObjectOutput out);
}

序列化和外部化的主要區(qū)別

外部化和序列化是實(shí)現(xiàn)同一目標(biāo)的兩種不同方法。下面讓我們分析一下序列化和外部化之間的主要區(qū)別。

通過Serializable接口對對象序列化的支持是內(nèi)建于核心 API 的,但是java.io.Externalizable的所有實(shí)現(xiàn)者必須提供讀取和寫出的實(shí)現(xiàn)。Java 已經(jīng)具有了對序列化的內(nèi)建支持,也就是說只要制作自己的類java.io.Serializable,Java 就會試圖存儲和重組你的對象。如果使用外部化,你就可以選擇完全由自己完成讀取和寫出的工作,Java 對外部化所提供的唯一支持是接口:

voidreadExternal(ObjectInput in)
void writeExternal(ObjectOutput out)

現(xiàn)在如何實(shí)現(xiàn)readExternal() writeExternal() 就完全看你自己了。

序列化會自動存儲必要的信息,用以反序列化被存儲的實(shí)例,而外部化則只保存被存儲的類的標(biāo)識。當(dāng)你通過java.io.Serializable接口序列化一個(gè)對象時(shí),有關(guān)類的信息,比如它的屬性和這些屬性的類型,都與實(shí)例數(shù)據(jù)一起被存儲起來。在選擇走Externalizable這條路時(shí),Java 只存儲有關(guān)每個(gè)被存儲類型的非常少的信息。

每個(gè)接口的優(yōu)點(diǎn)和缺點(diǎn)

Serializable
接口

·
     優(yōu)點(diǎn):內(nèi)建支持

·
     優(yōu)點(diǎn):易于實(shí)現(xiàn)

·
     缺點(diǎn):占用空間過大

·
     缺點(diǎn):由于額外的開銷導(dǎo)致速度變比較慢

Externalizable
接口

·
     優(yōu)點(diǎn):開銷較少(程序員決定存儲什么)

·
     優(yōu)點(diǎn):可能的速度提升

·
     缺點(diǎn):虛擬機(jī)不提供任何幫助,也就是說所有的工作都落到了開發(fā)人員的肩上。

在兩者之間如何選擇要根據(jù)應(yīng)用程序的需求來定。Serializable通常是最簡單的解決方案,但是它可能會導(dǎo)致出現(xiàn)不可接受的性能問題或空間問題;在出現(xiàn)這些問題的情況下,Externalizable可能是一條可行之路。

要記住一點(diǎn),如果一個(gè)類是可外部化的(Externalizable),那么Externalizable方法將被用于序列化類的實(shí)例,即使這個(gè)類型提供了Serializable方法:

private void writeObject()
private void readObject()

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
序列化
java序列化機(jī)制學(xué)習(xí)
Java - Externalizable接口的用法
java基礎(chǔ)
Java對象的序列化和反序列化實(shí)踐
Java程序員必備:序列化全方位解析
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服