1. 程式人生 > >Serializable序列化的簡要說明

Serializable序列化的簡要說明

持久化物件的介紹:

“持久化”意味著物件的“生存時間”並不取決於程式是否在執行,持久化物件存在於物件每一次的呼叫之間,通過序列化一個物件,將其寫入磁碟,以後程式每一次呼叫的時候都重新恢復那個物件,就能圓滿實現一種“持久”的狀態。 提供主要特徵的支援: 遠端方法呼叫使本來存在於其他機器的物件可以表現出好像在本地機器上的行為。將訊息發給遠端物件,需要通過物件序列化來傳輸引數和返回值。 使用一個Java Bean 時,它的狀態資訊通常在設計期間配置好,程式啟動以後,這種狀態資訊必須儲存下來,以便程式啟動以後恢復;具體工作由物件序列化完成。

Serializable的一些說明: 想要對一個物件執行序列化處理,只需要物件實現Serializable介面即可。(該介面只是一個標記,沒有方法) 序列化的物件包括基本資料型別,所有集合類以及其他許多東西,還有class物件。 物件序列化不僅儲存了物件的"全景圖",而且能追蹤物件內包含的所有控制代碼並儲存那些物件;接著又能對每個物件的控制代碼進行追蹤。 使用transient關鍵字修飾的變數,在序列化物件的過程中,該屬性不會被序列化。 序列化的步驟:

首先要建立某些OutputStream物件:OutputStream outputStream = new FileOutputStream(“output.txt”) 將其封裝到ObjectOutputStream物件內:ObjectOutputStream objectOutputStream = new ObjectOutputStream(outputStream); 此後只需呼叫writeObject()即可完成物件的序列化,並將其傳送給OutputStream:objectOutputStream.writeObject(Object); 最後不要忘記關閉資源:objectOutputStream.close(), outputStream .close(); 反序列化的步驟:

首先要建立某些OutputStream物件:InputStream inputStream= new FileInputStream(“output.txt”) 將其封裝到ObjectInputStream物件內:ObjectInputStream objectInputStream= new ObjectInputStream(inputStream); 此後只需呼叫writeObject()即可完成物件的反序列化:objectInputStream.readObject(); 最後不要忘記關閉資源:objectInputStream.close(),inputStream.close();