注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡網(wǎng)絡與數(shù)據(jù)通信深入理解序列化與反序列化

深入理解序列化與反序列化

深入理解序列化與反序列化

定 價:¥69.00

作 者: 潘洪安 著
出版社: 電子工業(yè)出版社
叢編項: 互聯(lián)網(wǎng)后臺技術叢書
標 簽: 暫缺

ISBN: 9787121396885 出版時間: 2020-11-01 包裝: 平裝
開本: 16開 頁數(shù): 232 字數(shù):  

內(nèi)容簡介

  恰當?shù)男蛄谢桨覆粌H可以提高系統(tǒng)的通用性、強健性、安全性,優(yōu)化系統(tǒng)性能,而且會讓系統(tǒng)更加易于調試、便于擴展?!渡钊肜斫庑蛄谢c反序列化》從最基本的計算機編碼知識入手,接著從內(nèi)部機制、工作原理、核心類剖析、應用示例等方面對大數(shù)據(jù)、分布式架構中廣泛應用的5種主流序列化技術――Java序列化、JSON、Thrift、Protocol Buffer和Avro進行深入講解,最后從序列化后的數(shù)據(jù)大?。臻g)、序列化耗時(時間)、反序列化耗時(時間)三個維度對5種序列化技術進行性能分析和綜合對比,讓讀者對序列化技術有更全面和深入的理解,從而更好地應對不同場景下的序列化需求?!渡钊肜斫庑蛄谢c反序列化》兼顧技術原理和技術應用,適合初級開發(fā)者、高級開發(fā)人員、架構師及技術專家使用。

作者簡介

  潘洪安 本碩均就讀于西北大學,先后在百度、獵豹、快手等互聯(lián)網(wǎng)公司從事大數(shù)據(jù)及后臺開發(fā)工作。擅長大數(shù)據(jù)、分布式系統(tǒng)及后臺高并發(fā)技術,喜歡探索技術原理,擁有技術發(fā)明專利6項。

圖書目錄

第一部分 技術基礎
第1章 基礎知識
1.1 計算機編碼
1.1.1 比特、字節(jié)與字符
1.1.2 字節(jié)對齊
1.1.3 數(shù)字的表示
1.1.4 Big-Endian與Little-Endian
1.2 字符編碼
1.2.1 字符集與字符編碼
1.2.2 英文字符集與編碼
1.2.3 中文字符集與編碼
1.2.4 Unicode字符集與編碼
1.3 Base64編碼
1.3.1 編碼規(guī)則
1.3.2 解碼規(guī)則
1.3.3 索引表
1.3.4 編碼與解碼示例
1.3.5 Java應用示例
1.4 Varint編碼
1.4.1 編碼規(guī)則
1.4.2 Varint編碼示例
1.4.3 Varint編碼的不足
1.5 ZigZag編碼
1.5.1 ZigZag編碼流程
1.5.2 ZigZag編碼算法實現(xiàn)
1.5.3 ZigZag反編碼流程
1.5.4 ZigZag反編碼算法實現(xiàn)
1.5.5 總結
1.6 初識序列化/反序列化
1.6.1 技術背景
1.6.2 技術特征
1.6.3 IDL序列化引擎
第二部分 序列化技術介紹
第2章 Java序列化
2.1 Java序列化入門
2.1.1 Java序列化實現(xiàn)方式
2.1.2 Java序列化應用
2.2 Java序列化核心類
2.2.1 Serializable
2.2.2 Externalizable
2.2.3 ObjectOutputStream
2.2.4 ObjectInputStream
2.3 Java序列化原理
2.3.1 基本類型的序列化流程
2.3.2 基本類型數(shù)據(jù)的序列化大小
2.3.3 對象類型的序列化流程
2.3.4 對象類型的序列化數(shù)據(jù)成分
2.4 Java序列化高級特性
2.4.1 transient關鍵字
2.4.2 static關鍵字
2.4.3 serialVersionUID
2.4.4 序列化/反序列化hook
2.4.5 數(shù)據(jù)校驗
2.5 選擇Serializable還是Externalizable
2.6 Java序列化安全
2.6.1 SealedObject
2.6.2 SignedObject
2.7 小結
第3章 JSON
3.1 JSON結構
3.1.1 JSON值類型
3.1.2 JSON語法
3.2 Gson的實現(xiàn)
3.2.1 Gson值類型
3.2.2 Gson核心類
3.2.3 Gson生成JSON原理
3.2.4 TypeAdapter
3.2.5 Gson解析JSON原理
3.2.6 Gson應用示例
3.2.7 Gson特性
3.3 開源工具庫介紹
3.3.1 Fastjson
3.3.2 Jackson
3.3.3 開源工具庫對比
3.4 小結
第4章 Thrift
4.1 Thrift數(shù)據(jù)類型
4.1.1 基本數(shù)據(jù)類型
4.1.2 復雜數(shù)據(jù)類型
4.2 Thrift文件
4.2.1 Thrift規(guī)范
4.2.2 名字空間
4.2.3 include關鍵字
4.2.4 const關鍵字
4.3 Thrift文件示例
4.4 Thrift生成的數(shù)據(jù)結構
4.4.1 enum生成Java代碼
4.4.2 struct生成Java代碼
4.5 Thrift序列化原理
4.5.1 序列化/反序列化核心類
4.5.2 序列化流程
4.5.3 反序列化流程
4.6 TProtocol的實現(xiàn)
4.6.1 TBinaryProtocol
4.6.2 TCompactProtocol
4.6.3 TJSONProtocol
4.6.4 TSimpleJSONProtocol
4.6.5 TTupleProtocol
4.7 Java Serializable讀寫Thrift對象
4.8 TTransport
4.8.1 內(nèi)存型TTransport
4.8.2 文件型TTransport
4.8.3 特定功能型TTransport
4.8.4 網(wǎng)絡型TTransport
4.8.5 總結
4.9 小結
第5章 Protocol Buffer
5.1 數(shù)據(jù)類型
5.1.1 基本數(shù)據(jù)類型
5.1.2 復雜數(shù)據(jù)類型
5.2 proto文件
5.2.1 proto規(guī)范
5.2.2 import關鍵字
5.3 proto文件示例
5.4 proto文件生成代碼
5.4.1 手動執(zhí)行protoc命令行
5.4.2 Maven集成方式
5.4.3 proto應用示例
5.4.4 proto生成的代碼文件
5.5 ProtoBuf生成Java對象
5.5.1 enum定義生成的Java對象
5.5.2 message定義生成的Java對象
5.6 Descriptor機制
5.6.1 FileDescriptor
5.6.2 PackageDescriptor
5.6.3 Descriptor
5.6.4 FieldDescriptor
5.6.5 OneOfDescriptor
5.6.6 EnumDescriptor和EnumValueDescriptor
5.6.7 ServiceDescriptor和MethodDescriptor
5.6.8 Descriptor和DescriptorProto
5.6.9 Descriptor文件
5.7 ProtoBuf Builder機制
5.8 ProtoBuf數(shù)據(jù)序列化
5.8.1 數(shù)據(jù)序列化大小
5.8.2 數(shù)據(jù)序列化實現(xiàn)方式
5.8.3 ProtoBuf序列化流程
5.8.4 ProtoBuf序列化應用示例
5.9 ProtoBuf數(shù)據(jù)反序列化
5.10ProtoBuf高級特性
5.10.1 extension
5.10.2 oneof
5.10.3 Any
5.11 ProtoBuf開源組件
5.11.1 protostuff
5.11.2 Cap‘n Proto
5.12小結
第6章 Avro
6.1 Avro數(shù)據(jù)Schema
6.1.1 Avro數(shù)據(jù)類型
6.1.2 Avro Schema文件定義
6.1.3 Avro Schema文件的生效模式
6.2 Avro生成Java代碼
6.3 Avro序列化核心類
6.3.1 Schema
6.3.2 GenericData
6.3.3 Encoder
6.3.4 Decoder
6.3.5 DatumWriter
6.4 Avro序列化過程
6.5 小結 195
第三部分 深入理解序列化技術
第7章 序列化技術性能
7.1 序列化技術特征對比
7.2 序列化技術性能對比
7.2.1 對各類型數(shù)據(jù)的處理
7.2.2 序列化數(shù)據(jù)大小對比
7.2.3 序列化耗時對比
7.2.4 反序列化耗時對比
7.2.5 性能對比結論
7.3 自定義IDL序列化工具
7.4 小結

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.dappsexplained.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號