<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Java幾種序列化方式對比

      轉:https://juejin.cn/post/6919026394382991373

      1:為什么要序列化

      網絡傳輸的數據都必須是二進制數據,但是在Java中都是對象,是沒有辦法在網絡中進行傳輸的,所以就需要對Java對象進行序列化,而且這個要求這個轉換算法是可逆的,不然要是不可逆那鬼知道你傳過來的是個什么東西

      2:Java原生序列化

      只要讓類實現 Serializable 接口就行,序列化具體的實現是由ObjectOutputStream和ObjectInputStream來實現的

      缺點:

      • 1:序列化碼流太大
      • 2:序列化效率低
      • 3:無法跨語言

      優點:

      • 1:簡單

      3:JSON序列化

      JSON 可能是我們最熟悉的一種序列化格式了,JSON 是典型的 Key-Value 方式,沒有數據類型,是一種文本型序列化框架,JSON 的具體格式和特性,網上相關的資料非常多,這里就不再介紹了。他在應用上還是很廣泛的,無論是前臺 Web 用 Ajax 調用、用磁盤存儲文本類型的數據,還是基于 HTTP 協議的 RPC 框架通信,都會選擇 JSON 格式。

      缺點:

      • 1:JSON進行序列化的額外空間開銷比較大,對于大數據量服務就意味著需要巨大的內存和磁盤開銷
      • 2:JSON沒有類型,但像Java這種強類型語言,需要通過反射統一解決,所以性能不會太好

      優點:

      • 1:簡潔明了

      3:Hessian

      Hessian 是動態類型、二進制、緊湊的,并且可跨語言移植的一種序列化框架。Hessian 協議要比 JDK、JSON 更加緊湊,性能上要比 JDK、JSON 序列化高效很多,而且生成的字節數也更小

      Student student = new Student(); 
      student.setNo(101);  
      student.setName("HESSIAN"); 
      //把student對象轉化為byte數組
      ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
      Hessian2Output output = new Hessian2Output(bos); 
      output.writeObject(student); 
      output.flushBuffer(); 
      byte[] data = bos.toByteArray(); 
      bos.close(); 
      //把剛才序列化出來的byte數組轉化為student對象
      ByteArrayInputStream bis = new ByteArrayInputStream(data); 
      Hessian2Input input = new Hessian2Input(bis); 
      Student deStudent = (Student) input.readObject(); 
      input.close(); 
      System.out.println(deStudent);

      缺點:

      • 1:官方版本對Java里面一些常見對象的類型不支持,
      • 比如LinkedHashMap、LinkedHashSet 等,但是可以通過擴展CollectionDeserializer 類修復,
      • Locale 類,可以通過擴展 ContextSerializerFactory 類修復;
      • Byte/Short 反序列化的時候變成 Integer

      優點:

      • 1:相對于JDk,JSON,更加高效,生成的字節數更小
      • 2:有非常好的兼容性和穩定性

      4:Protobuf

      Protobuf 是 Google 公司內部的混合語言數據標準,是一種輕便、高效的結構化數據存儲格式,可以用于結構化數據序列化,支持 Java、Python、C++、Go 等語言。Protobuf使用的時候需要定義 IDL(Interface description language),然后使用不同語言的 IDL編譯器,生成序列化工具類

      缺點:

      • 1:為了提高性能,protobuf采用了二進制格式進行編碼。這直接導致了可讀性差
      • 2:對于具有反射和動態語言來講,用起來比較費勁

      優點:

      • 1:高效
      • 2:支持多種語言
      • 3:支持向前,向后兼容

      5:Thrift

      Thrift是Facebook于2007年開發的跨語言的rpc服框架,提供多語言的編譯功能,并提供多種服務器工作模式,用戶通過Thrift的IDL(接口定義語言)來描述接口函數及數據類型,然后通過Thrift的編譯環境生成各種語言類型的接口文件,用戶可以根據自己的需要采用不同的語言開發客戶端代碼和服務器端代碼。

      缺點:

      • 1:沒有官方文檔
      • 2:Thrift序列化二進制不可讀,調試困難
      • 3:buf fix 和更新不積極,維護成本過高
      • 4:RPC 在 0.6.1 升級到 0.7.0 是不兼容的

      優點:

      • 1:特性豐富
      • 2:性能不錯
      • 3:有很多開源項目的周邊支持 都是 thrift

       

       

      posted @ 2021-04-01 14:34  IT路上的小白  閱讀(1273)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 人妻系列无码专区无码中出| 国产午夜亚洲精品国产成人| 国产精品SM捆绑调教视频| 激情综合网五月激情五月| 亚洲红杏AV无码专区首页| 亚洲国产精品无码一区二区三区| 国产极品美女高潮无套| 精品一区二区成人精品| 华池县| 国产人成777在线视频直播| 上高县| 欧美日韩国产图片区一区| 久久久噜噜噜久久| 日韩少妇人妻vs中文字幕| 久久婷婷五月综合色丁香花| gogogo高清在线观看视频中文| 熟妇好大好深好满好爽| 97免费人妻在线视频| 亚洲中文欧美在线视频| 在线一区二区中文字幕| 激情在线网| 国产美女午夜福利视频| 国产无遮挡又黄又大又爽| 国产成人无码免费视频麻豆| 人妻丝袜无码专区视频网站| 欧美综合区自拍亚洲综合绿色| 欧洲精品色在线观看| 昭苏县| 久久人与动人物a级毛片| 国产精品自在拍首页视频8| 特克斯县| 国产偷窥厕所一区二区| 在线中文字幕亚洲日韩2020| 醴陵市| 亚洲综合黄色的在线观看| 国产精品第一区亚洲精品| 久久综合国产色美利坚| 久久久精品人妻一区二区三区 | av永久免费网站在线观看| 国产三级精品三级在线看| 99久久er热在这里只有精品99|