万本电子书0元读

万本电子书0元读

顶部广告

深入理解序列化与反序列化电子书

售       价:¥

60人正在读 | 1人评论 6.2

作       者:潘洪安

出  版  社:电子工业出版社

出版时间:2020-10-14

字       数:7.6万

所属分类: 科技 > 计算机/网络 > 程序设计

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

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

作者简介

内容简介

推荐序一

推荐序二

推荐语

前言

第一部分 技术基础

第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.10 ProtoBuf高级特性

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 小结

第三部分 深入理解序列化技术

第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 小结

好书力荐

累计评论(1条) 1个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部