天天看點

序列化與反序列化

  • 什麼是序列化

  在計算機科學的資料進行中,是指将資料結據或對象轉換成可取用的格式(如存成檔案,位元組),以讓後續在相同或另一台計算機中,能恢複原先狀态的過程。

  • 為什麼我們需要序列化
    • 存儲/傳輸
    • IPC/RPC
      • IPC,Inter-Process Communication,程序間通信
      • RPC,Remote Procedure Call,遠端過程調用
    • 深度copy
  • 序列化的類型
    • 文本,要被encoded後才可做序列化,因為在計算機内部都是以二進制存儲,編碼有:uft-8(英文每個字元占1位元組,中文每個字元占3個位元組), unicode(英文每個字元占2位元組,中文每個字元占2個位元組);另外還要注意位元組順序;
      • XML, JSON, ProtoBuf(texst)
      • 優點:可讀
      • 缺點:轉換速度慢
    • 位元組
      • 優點:轉換速度快
      • 缺點
  • ProtoBuf,非語言相關、非平台相關、向下相容(可擴充字段,不影響舊版本資料);(學習)