序列化小結

2021-10-25 16:20:42 字數 917 閱讀 5240

wiki的描述如下:

序列化在電腦科學的資料處理中,是指將資料結構或物件狀態轉換成可取用格式(例如存成檔案,存於緩衝,或經由網路中傳送),以留待後續在相同或另一台計算機環境中,能恢復原先狀態的過程。

筆者個人理解如下:

此處為了便於讀者理解舉個例子:

現在有乙個 student類,有name,age等引數。

需求一,需要將這個類中的資料儲存到本地,後面需要的時候再拿出來。

由於student這個類是記憶體中的乙個物件,不可以直接儲存,那麼就可以通過」序列化「將這個student類轉化成一種可以儲存的形式,然後再儲存。後面再通過」反序列化「將儲存的資料還原成student類。

需求二,需要將這個student的類,從客戶端傳輸到服務端。

由於這個student的類是客戶端的乙個物件,網路傳輸中無法直接使用,因此通過」序列化「將這個類轉化成一種可以傳輸的形式,然後再傳輸。服務端接收到後,通過對應的」反序列化「將資料還原成自己環境中的物件。

}

場景:

長連線場景(如遊戲客戶端與服務端的通訊)

原因:對資料通訊的速度以及大小都有要求

場景:專案配置檔案

短連線中用於傳遞某個臨時資料,比如直接寫在url的query中

原因:對序列化後內容的表達能力有一定要求 (配置檔案一般也會有直接修改的需求)

對序列化的效率以及大小沒有較嚴的要求

使用更為普遍的xml和json方案可以一定程度上減少各開發的溝通成本和提高開發效率。

對各種序列化方案的效能有興趣的可以看下如下文章:

全方位評測:protobuf效能到底有沒有比json快5倍?

序列化小結

記一些ctf出現的序列化與反序列化的知識點和題目。序列化就是將物件轉換成字串。字串包括 屬性名 屬性值 屬性型別和該物件對應的類名。反序列化則相反將字串重新恢復成物件。物件的序列化利於物件的儲存和傳輸,也可以讓多個檔案共享物件。construct 建立物件時呼叫 destruct 銷毀物件時呼叫 t...

物件序列化 經驗小結

net的物件序列化真是好東西,以後要多多利用。在使用.net的序列化時,碰到過一些問題,還好,有豐富的msdn可查,沒有什麼過不去的檻。在這裡,把使用.net序列化的經驗小結一下。1.基本確認xmlserializer使用utf8對序列化的xml文件編碼。2.xmlserializer只序列化宣告為...

序列化(序列化)

原書上翻譯為序列化,msdn翻譯為序列化 作用 當需要儲存,或者網路傳輸 remoting時,資料 物件或值 需要序列化 類似於打包傳輸檔案。system.serializableattribute 序列化是指儲存和獲取磁碟檔案 記憶體或其他地方中的物件。在序列化時,所有的例項資料都儲存到儲存介質上...