您好,登錄后才能下訂單哦!
實現(xiàn)java.io.Serializable 接口的類是可序列化的。沒有實現(xiàn)此接口的類將不能使它們的任一狀態(tài)被序列化或逆序列化。序列化類的所有子類本身都是可序列化的。這個序列化接口沒有任何方法和域,僅用于標識 序列化的語意。允許非序列化類的子類型序列化,子類型可以假定負責保存和恢復父類型的公有的、保護的和(如果可訪問)包的域的狀態(tài)。只要該類(擴展)有一 個無參構造子,可初始化它的狀態(tài),那么子類型就可承擔上述職責。在這種情況下申明一個可序列化的類是一個錯誤。此錯誤將在運行時被檢測。就是可以把對象存 到字節(jié)流,然后可以恢復!
例如:Integer實現(xiàn)了Serializable,所以可以把一個Integer的對象用IO寫到文件里,之后再可以從文件里讀出,如你開始寫入的時候那個對象的intValue() 是5的話,那讀出來之后也是5。這一點體現(xiàn)了用序化類的作用,即用來傳送類的對象。
所謂的Serializable,就是java提供的通用數(shù)據(jù)保存和讀取的接口。至于從什么地方讀出來和保存到哪里去都被隱藏在函數(shù)參數(shù)的背后了。這樣子,任何類型只要實現(xiàn)了Serializable接口,就可以被保存到文件中,或者作為數(shù)據(jù)流通過網(wǎng)絡發(fā)送到別的地方。也可以用管道來傳輸?shù)较到y(tǒng)的其他程序中。這樣子極大的簡化了類的設計。只要設計一個保存一個讀取功能就能解決上面說得所有問題。
Object serialization的定義:
Object serialization 允許你將實現(xiàn)了Serializable接口的對象轉(zhuǎn)換為字節(jié)序列,這些字節(jié)序列可以被完全存儲以備以后重新生成原來的對象。
serialization不但可以在本機做,而且可以經(jīng)由網(wǎng)絡操作(RMI)。這個好處是很大的----因為它自動屏蔽了操作系統(tǒng)的差異,字節(jié)順序(用Unix下的c開發(fā)過網(wǎng)絡編程的人應該知道這個概念)等。比如,在Window平臺生成一個對象并序列化之,然后通過網(wǎng)絡傳到一臺Unix機器上,然后可以在這臺Unix機器上正確地重構這個對象。
Object serialization主要用來支持2種主要的特性:
1、Java的RMI(remote method invocation).RMI允許象在本機上一樣操作遠程機器上的對象。當發(fā)送消息給遠程對象時,就需要用到serializaiton機制來發(fā)送參數(shù)和接收返回直。
2、Java的JavaBeans. Bean的狀態(tài)信息通常是在設計時配置的。Bean的狀態(tài)信息必須被存起來,以便當程序運行時能恢復這些狀態(tài)信息。這也需要serializaiton機制。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。