對(duì)象序列化機(jī)制對(duì)于需要將對(duì)象的狀態(tài)保存到文件中,而后能夠通過(guò)讀入對(duì)象狀態(tài)來(lái)重新構(gòu)造對(duì)象,恢復(fù)程序狀態(tài),或者使用套接字在網(wǎng)絡(luò)上傳送對(duì)象的程序來(lái)說(shuō),是很有用的。通過(guò)讓類實(shí)現(xiàn)java.io.Serializable 接口可以將類序列化。這個(gè)接口是一個(gè)制造者(marker)接口。也就是說(shuō),對(duì)于要實(shí)現(xiàn)它的類來(lái)說(shuō),該接口不需要實(shí)現(xiàn)任何方法。它主要用來(lái)通知Java虛擬機(jī)(JVM)需要將一個(gè)對(duì)象序列化。
也叫串行化,對(duì)象的域轉(zhuǎn)化為緊湊的2進(jìn)制形式,是對(duì)象持久化的方法之一。《實(shí)現(xiàn)類的序列化--例子將Vector對(duì)象壓入標(biāo)準(zhǔn)流》出處 CN-JAVA原創(chuàng):jackliuVector對(duì)象是一個(gè)很靈活的java數(shù)據(jù)結(jié)構(gòu),在實(shí)際編程中,有時(shí)需要我們將一個(gè)Vector對(duì)象傳遞給另一個(gè)Java程序并保持Vector的數(shù)據(jù)結(jié)構(gòu)狀態(tài),這時(shí),我們可以將需要傳遞的對(duì)象實(shí)現(xiàn)java.io.Serializable接口,序列化這個(gè)類,由于序列化本身就是允許一個(gè)對(duì)象在虛擬機(jī)之間傳送(或者經(jīng)過(guò)一段空間,如在RMI中;或者經(jīng)過(guò)一段時(shí)間,比如數(shù)據(jù)流被保存到一個(gè)文件中)。 關(guān)于類的序列化請(qǐng)查閱相關(guān)資料,本篇不在敘述,下面使用一個(gè)簡(jiǎn)單的程序說(shuō)明如何把一個(gè)Vector對(duì)象序列化并放到一個(gè)流中(為了測(cè)試方便,這里放到一個(gè)文件流中,如果換成一個(gè)套接字就可以把對(duì)象發(fā)送給遠(yuǎn)程請(qǐng)求者)
程序1:把一個(gè)Vector對(duì)象存儲(chǔ)到一個(gè)testvector.obj文件里(模擬server socket處理)
編譯程序1,運(yùn)行后,在當(dāng)前目錄生成一個(gè)testvector.obj文件,這個(gè)文件里存放了TestVector類的數(shù)據(jù)
程序2:從testvector.obj文件里獲取TestVector對(duì)象(模擬socke客戶端)
編譯程序2,運(yùn)行后,讀取testvector.obj文件,根據(jù)內(nèi)容構(gòu)建出原始的TestVector類。
posted on 2005-11-09 09:52 bluesky 閱讀(802) 評(píng)論(0) 編輯 收藏 所屬分類: 基礎(chǔ)知識(shí)