ObjectInputStream ?ObjectOutStream將對(duì)象序列化到磁盤
把對(duì)象轉(zhuǎn)換為字節(jié)序列的過(guò)程稱為對(duì)象的序列化
把字節(jié)序列恢復(fù)為對(duì)象的過(guò)程稱為對(duì)象的反序列化
對(duì)象序列化主要有兩種用途:
(1)把對(duì)象的字節(jié)序列永久地保存到硬盤上,通常存放在一個(gè)文件中
(2)在網(wǎng)絡(luò)上傳送對(duì)象的字節(jié)序列
在很多應(yīng)用中,需要對(duì)某些對(duì)象進(jìn)行序列化,讓它們離開(kāi)內(nèi)存空間入駐物理硬盤,以便長(zhǎng)期保存。比如最常見(jiàn)的是Web服務(wù)器中的Session對(duì)象,當(dāng)有10萬(wàn)用戶并發(fā)訪問(wèn),就有可能出現(xiàn)10萬(wàn)個(gè)Session對(duì)象,內(nèi)存可能吃不消,于是Web容器就會(huì)把一些session先序列化到硬盤中,等要用到的時(shí)候,再把保存在硬盤中的對(duì)象還原到內(nèi)存中
? ?當(dāng)兩個(gè)進(jìn)程在進(jìn)行遠(yuǎn)程通信時(shí),彼此可以發(fā)送各種類型的數(shù)據(jù),無(wú)論是何種類型的數(shù)據(jù),都會(huì)以二進(jìn)制序列的形式在網(wǎng)絡(luò)上傳送。發(fā)送方需要把這個(gè)java對(duì)象轉(zhuǎn)換為字節(jié)序列,才能在網(wǎng)絡(luò)上傳送。接收方則需要把字節(jié)序列化再恢復(fù)為java對(duì)象。