注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络网络与数据通信深入理解序列化与反序列化

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

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

定 价:¥69.00

作 者: 潘洪安 著
出版社: 电子工业出版社
丛编项: 互联网后台技术丛书
标 签: 暂缺

购买这本书可以去


ISBN: 9787121396885 出版时间: 2020-11-01 包装: 平装
开本: 16开 页数: 232 字数:  

内容简介

  恰当的序列化方案不仅可以提高系统的通用性、强健性、安全性,优化系统性能,而且会让系统更加易于调试、便于扩展。《深入理解序列化与反序列化》从最基本的计算机编码知识入手,接着从内部机制、工作原理、核心类剖析、应用示例等方面对大数据、分布式架构中广泛应用的5种主流序列化技术――Java序列化、JSON、Thrift、Protocol Buffer和Avro进行深入讲解,最后从序列化后的数据大小(空间)、序列化耗时(时间)、反序列化耗时(时间)三个维度对5种序列化技术进行性能分析和综合对比,让读者对序列化技术有更全面和深入的理解,从而更好地应对不同场景下的序列化需求。《深入理解序列化与反序列化》兼顾技术原理和技术应用,适合初级开发者、高级开发人员、架构师及技术专家使用。

作者简介

  潘洪安 本硕均就读于西北大学,先后在百度、猎豹、快手等互联网公司从事大数据及后台开发工作。擅长大数据、分布式系统及后台高并发技术,喜欢探索技术原理,拥有技术发明专利6项。

图书目录

第一部分 技术基础
第1章 基础知识
1.1 计算机编码
1.1.1 比特、字节与字符
1.1.2 字节对齐
1.1.3 数字的表示
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 编码规则
1.3.2 解码规则
1.3.3 索引表
1.3.4 编码与解码示例
1.3.5 Java应用示例
1.4 Varint编码
1.4.1 编码规则
1.4.2 Varint编码示例
1.4.3 Varint编码的不足
1.5 ZigZag编码
1.5.1 ZigZag编码流程
1.5.2 ZigZag编码算法实现
1.5.3 ZigZag反编码流程
1.5.4 ZigZag反编码算法实现
1.5.5 总结
1.6 初识序列化/反序列化
1.6.1 技术背景
1.6.2 技术特征
1.6.3 IDL序列化引擎
第二部分 序列化技术介绍
第2章 Java序列化
2.1 Java序列化入门
2.1.1 Java序列化实现方式
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 基本类型数据的序列化大小
2.3.3 对象类型的序列化流程
2.3.4 对象类型的序列化数据成分
2.4 Java序列化高级特性
2.4.1 transient关键字
2.4.2 static关键字
2.4.3 serialVersionUID
2.4.4 序列化/反序列化hook
2.4.5 数据校验
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的实现
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数据类型
4.1.1 基本数据类型
4.1.2 复杂数据类型
4.2 Thrift文件
4.2.1 Thrift规范
4.2.2 名字空间
4.2.3 include关键字
4.2.4 const关键字
4.3 Thrift文件示例
4.4 Thrift生成的数据结构
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的实现
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 内存型TTransport
4.8.2 文件型TTransport
4.8.3 特定功能型TTransport
4.8.4 网络型TTransport
4.8.5 总结
4.9 小结
第5章 Protocol Buffer
5.1 数据类型
5.1.1 基本数据类型
5.1.2 复杂数据类型
5.2 proto文件
5.2.1 proto规范
5.2.2 import关键字
5.3 proto文件示例
5.4 proto文件生成代码
5.4.1 手动执行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数据序列化
5.8.1 数据序列化大小
5.8.2 数据序列化实现方式
5.8.3 ProtoBuf序列化流程
5.8.4 ProtoBuf序列化应用示例
5.9 ProtoBuf数据反序列化
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数据Schema
6.1.1 Avro数据类型
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 对各类型数据的处理
7.2.2 序列化数据大小对比
7.2.3 序列化耗时对比
7.2.4 反序列化耗时对比
7.2.5 性能对比结论
7.3 自定义IDL序列化工具
7.4 小结

本目录推荐