[問題] 序列化

作者: AirWall (空氣牆)   2019-04-04 01:39:31
寫題目的時候遇到序列化的問題,
查了很久還是不清楚到底什麼是序列化,
想問問大家我對序列化的了解是否正確。
目前了解要序列化是因為舉例來說像是 int 在不同編譯器或者系統就會有
不同的 machine code,或者一些資料結構的狀態不好直接儲存,
所以轉成一個方便的格式來儲存,傳輸。
然後我看到序列化就是把資料轉成 a squence of bits,
我的理解是 like 0101010111111110100 這樣,
但我看到題目是把 binary tree 轉成 "[1,2,3,null,null,4,5]" 的字串形式,
還有像是現在網路傳輸,很多序列化也是轉成JSON字串,
這裡我理解是因為原本 tree 的結構不好被儲存,
轉成字串形式就很好儲存,也能依此還原出 tree。
但這個步驟好像比較像是把不好儲存的狀態轉成一個好儲存的格式,
跟轉成 a squence of bits 好像沒什麼關係?
1. 是因為最終這個 string 會被轉成 010101001000 的格式所以也算有轉成
a seq of bits嗎?
2. 如果是這樣,想請問除了序列化成字串以外,還可以序列化成什麼?
可以序列化成 array of char 嗎,因為 array contiguous 然後 char 都是 1 Byte
如果有理解錯誤,或問題怪怪的,
還麻煩指正一下,感謝~
作者: hsnuyi (羊咩咩~)   2019-04-04 02:37:00
所以tree原始是怎麼儲存的? 在記憶體中總不是畫些node用鉛筆連起來吧不然這樣問好了 leetcode中有關tree的題目 它原始的test data是怎給的? 這裡指的不是餵進function的root node pointer
作者: s4300026 (s4300026)   2019-04-04 12:01:00
序列化就是用小,中,大括號表示表示,變數,陣列,vector,map,class等儲存格式。
作者: Feis (永遠睡不著 @@)   2019-04-04 12:12:00
先了解什麼是反序列化?
作者: yvb   2019-04-04 12:14:00
1. google: bitstream wiki2. 未必字串,甚至位元為單位也可能,只是大多存儲單位是位元組
作者: AirWall (空氣牆)   2019-04-05 01:49:00
感謝大家的關鍵字,瞭解許多,謝謝
作者: x246libra (楓)   2019-04-05 17:09:00
我個人是比較分不清楚serialize 跟marshal

Links booklink

Contact Us: admin [ a t ] ucptt.com