一個對象序列化的接口,一個類只有實現(xiàn)了Serializable接口,它的對象才是可序列化的。因此如果要序列化某些類的對象,這些類就必須實現(xiàn)Serializable接口。而實際上,Serializable是一個空接口,沒有什么具體內(nèi)容,它的目的只是簡單的標識一個類的對象可以被序列化。
什么情況下需要序列化 a)當你想把的內(nèi)存中的對象寫入到硬盤的時候; b)當你想用套接字在網(wǎng)絡(luò)上傳送對象的時候; c)當你想通過RMI傳輸對象的時候; 再稍微解釋一下:a)比如說你的內(nèi)存不夠用了,那計算機就要將內(nèi)存里面的一部分對象暫時的保存到硬盤中,等到要用的時候再讀入到內(nèi)存中,硬盤的那部分存儲空間就是所謂的虛擬內(nèi)存。在比如過你要將某個特定的對象保存到文件中,我隔幾天在把它拿出來用,那么這時候就要實現(xiàn)Serializable接口; b)在進行java的Socket編程的時候,你有時候可能要傳輸某一類的對象,那么也就要實現(xiàn)Serializable接口;最常見的你傳輸一個字符串,它是JDK里面的類,也實現(xiàn)了Serializable接口,所以可以在網(wǎng)絡(luò)上傳輸。 c)如果要通過遠程的方法調(diào)用(RMI)去調(diào)用一個遠程對象的方法,如在計算機A中調(diào)用另一臺計算機B的對象的方法,那么你需要通過JNDI服務(wù)獲取計算機B目標對象的引用,將對象從B傳送到A,就需要實現(xiàn)序列化接口。 沒有人說的話能全部準確,批判性的參考。
|