序列化:序列化是将對象轉換為容易傳輸的格式的過程。例如,可以序列化一個對象,然後使用 HTTP 通過 Internet 在用戶端和伺服器之間傳輸該對象。在另一端,反序列化将從該流重新構造對象。
是對象永久化的一種機制。
确切的說應該是對象的序列化,一般程式在運作時,産生對象,這些對象随着程式的停止運作而消失,但如果我們想把某些對象(因為是對象,是以有各自不同的特性)儲存下來,在程式終止運作後,這些對象仍然存在,可以在程式再次運作時讀取這些對象的值,或者在其他程式中利用這些儲存下來的對象。這種情況下就要用到對象的序列化。
隻有序列化的對象才可以存儲在儲存設備上。為了對象的序列化而需要繼承的接口也隻是一個象征性的接口而已,也就是說繼承這個接口說明這個對象可以被序列化了,沒有其他的目的。之是以需要對象序列化,是因為有時候對象需要在網絡上傳輸,傳輸的時候需要這種序列化處理,從伺服器硬碟上把序列化的對象取出,然後通過網絡傳到用戶端,再由用戶端把序列化的對象讀入記憶體,執行相應的處理。
對象序列化是java的一個特征,通過該特征可以将對象寫作一組位元組碼,當在其他位置讀到這些位元組碼時,可以依此建立一個新的對象,而且新對象的狀态與原對象完全相同。為了實作對象序列化,要求必須能夠通路類的私有變量,進而保證對象狀态能夠正确的得以儲存和恢複。相應的,對象序列化API能夠在對象重建時,将這些值還原給私有的資料成員。這是對java語言通路權限的挑戰。通常用在伺服器用戶端的對象交換上面,另外就是在本機的存儲。
對象序列化的最主要的用處就是在傳遞,和儲存對象(object)的時候,保證對象的完整性和可傳遞性。譬如通過網絡傳輸,或者把一個對象儲存成一個檔案的時候,要實作序列化接口 。
*
……
【閱讀全文】