序列化就是一種用來(lái)處理對(duì)象流的機(jī)制。將對(duì)象的內(nèi)容流化,將流化后的對(duì)象傳輸于網(wǎng)絡(luò)之間。
序列化是通過(guò)實(shí)現(xiàn)serializable接口,該接口沒(méi)有需要實(shí)現(xiàn)的方法,implement Serializable只是為了標(biāo)注該對(duì)象是可被序列化的,使用一個(gè)輸出流(FileOutputStream)來(lái)構(gòu)造一個(gè)ObjectOutputStream對(duì)象,接著使用ObjectOutputStream對(duì)象的writeObejct(Object object)方法就可以將參數(shù)的obj對(duì)象到磁盤,需要恢復(fù)的時(shí)候使用輸入流。
序列化是將對(duì)象轉(zhuǎn)換為容易傳輸?shù)母袷降倪^(guò)程。
例如,可以序列化一個(gè)對(duì)象,然后通過(guò)HTTP通過(guò)Internet在客戶端和服務(wù)器之間傳輸該對(duì)象。在另一端,反序列化將從流中心構(gòu)造成對(duì)象。
一般程序在運(yùn)行時(shí),產(chǎn)生對(duì)象,這些對(duì)象隨著程序的停止而消失,但我們想將某些對(duì)象保存下來(lái),這時(shí),我們就可以通過(guò)序列化將對(duì)象保存在磁盤,需要使用的時(shí)候通過(guò)反序列化獲取到。
對(duì)象序列化的最主要目的就是傳遞和保存對(duì)象,保存對(duì)象的完整性和可傳遞性。
譬如通過(guò)網(wǎng)絡(luò)傳輸或者把一個(gè)對(duì)象保存成本地一個(gè)文件的時(shí)候,需要使用序列化。