1. 程式人生 > >為什麼要序列化Serialization

為什麼要序列化Serialization

一:概念

MSDN的定義:序列化是將物件狀態轉換為可保持或可傳輸的形式的過程。序列化的補集是反序列化,後者將流轉換為物件。這兩個過程一起保證資料易於儲存和傳輸

二: 什麼時候使用序列化:

1)物件序列化可以實現分散式物件。主要應用例如:RMI要利用物件序列化執行遠端主機上的服務,就像在本地機上執行物件時一樣。
2)物件序列化不僅保留一個物件的資料,而且遞迴儲存物件引用的每個物件的資料。可以將整個物件層次寫入位元組流中,可以儲存在檔案中或在網路連線上傳遞。利用物件序列化可以進行物件的"深複製",即複製物件本身及引用的物件本身。序列化一個物件可能得到整個物件序列。

三 :用處

1)資料需要序列化以後才能在服務端和客戶端之間傳輸
不序列化也可以傳輸,但是無法跨平臺,安全性也無法保障
在程序內通訊,也可以做到更高的安全性,物件不再通過呼叫棧互動,而是通過代理或通道。
2)序列化就是一種用來處理物件流的機制,所謂物件流也就是將物件的內容進行流化
我們可以對流化後的物件進行讀寫操作,也可將流化後的物件傳輸於網路之間(注:要想將物件傳輸於網路必須進行流化)!在對物件流進行讀寫操作時會引發一些問題,而序列化機制正是用來解決這些問題的!

3)描述資料的傳輸格式,這樣可以方便自己組織資料傳輸格式,以至於避免一些麻煩及錯誤
如果是跨平臺的序列化,則傳送方序列化後,接收方可以用任何其支援的平臺反序列化成相應的版本,比如 Java序列化後,

用.net、phython等反序列化