|
在RMI分布式應用系統(tǒng)中,服務器與客戶機之間傳遞的Java對象必須是可序列化的對象。不可序列化的對象不能在對象流中進行傳遞。對象序列化擴展了核心Java輸入/輸出類,同時也支持對象。對象序列化支持把對象編碼以及將通過它們可訪問到的對象編碼變成字節(jié)流;同時,它也支持流中對象圖形的互補重構造。序列化用于輕型持久性和借助于套接字或遠程方法調用(RMI)進行的通信。序列化中現在包括一個 API(Application Programming Interface,應用程序接口),允許獨立于類的域指定對象的序列化數據,并允許使用現有協議將序列化數據域寫入流中或從流中讀取,以確保與缺省讀寫機制的兼容性。 為編寫應用程序,除多數瞬態(tài)應用程序外,都必須具備存儲和檢索 Java對象的能力。以序列化方式存儲和檢索對象的關鍵在于提供重新構造該對象所需的足夠對象狀態(tài)。存儲到流的對象可能會支持 Serializable(可序列化)或 Externalizable(可外部化)接口。對于Java對象,序列化形式必須能標識和校驗存儲其內容的對象所屬的 Java類,并且將該內容還原為新的實例。對于可序列化對象,流將提供足夠的信息將流的域還原為類的兼容版本。對于可外部化對象,類將全權負責其內容的外部格式。序列化 Java 對象的目的是:提供一種簡單但可擴充的機制,以序列化方式維護 Java對象的類型及安全屬性;具有支持編組和解編的擴展能力以滿足遠程對象的需要;具有可擴展性以支持 Java 對象的簡單持久性;只有在自定義時,才需對每個類提供序列化自實現;允許對象定義其外部格式。 |
|
|