目录:
- 序列化概念
- ProtoBuf是什么
- ProtoBuf的使⽤特点
- 安装ProtoBuf
- 如何学习ProtoBuf
1.序列化概念
序列化和反序列化
- 序列化:把对象转换为字节序列的过程称为对象的序列化。
- 反序列化:把字节序列恢复为对象的过程称为对象的反序列化。
什么情况下需要序列化?
- 存储数据:当你想把的内存中的对象状态保存到⼀个⽂件中或者存到数据库中时。
- ⽹络传输:⽹络直接传输数据,但是⽆法直接传输对象,所以要在传输前序列化,传输完成后反
- 序列化成对象。例如我们之前学习过socket编程中发送与接收数据。
如何实现序列化?
- xml、json、protobuf
2.ProtoBuf是什么?
- Protocol Buffers是 Google 的⼀种语⾔⽆关、平台⽆关、可扩展的序列化结构数据的⽅法,它可⽤于(数据)通信协议、数据存储等。
- Protocol Buffers 类⽐于 XML,是⼀种灵活,⾼效,⾃动化机制的结构数据序列化⽅法,但是⽐XML 更⼩、更快、更为简单。
- 你可以定义数据的结构,然后使⽤特殊⽣成的源代码轻松的在各种数据流中使⽤各种语⾔进⾏编写和读取结构数据。你甚⾄可以更新数据结构,⽽不破坏由旧数据结构编译的已部署程序。
简单来讲,ProtoBuf(全称为Protocol Buffer)是让结构数据序列化的⽅法,其具有以下特点:
- 语⾔⽆关、平台⽆关:即ProtoBuf⽀持Java、C++、Python等多种语⾔,⽀持多个平台。
- ⾼效:即⽐XML更⼩、更快、更为简单。
- 扩展性、兼容性好:你可以更新数据结构,⽽不影响和破坏原有的旧程序。
3.ProtoBuf的使⽤特点
- 编写.proto⽂件,⽬的是为了定义结构对象(message)及属性内容。
- 使⽤protoc编译器编译.proto⽂件,⽣成⼀系列接⼝代码。
- 依赖⽣成的接⼝,实现对.proto⽂件中定义的字段进⾏设置和获取,和对message对象进⾏序列化和反序列化。
总的来说:ProtoBuf是需要依赖通过编译⽣成的JAVA代码来使⽤的。有了这种代码⽣成机制,开发⼈员再也不⽤吭哧吭哧地编写那些协议解析的代码了(⼲这种活是典型的吃⼒不讨好)。
4.安装ProtoBuf
略~
网上搜一下安装教程
5.如何学习ProtoBuf?
- 了解protobuf的基本概念和用途:protobuf是一种跨语言的序列化数据格式,它定义了一种数据交换格式,使得不同平台和语言之间的数据传输变得更加方便和安全。
- 学习protobuf的语法和结构:protobuf使用protocol buffer语言(protobuf语言)来定义数据结构,它是一种基于Google的Protocol Buffers库的扩展语言。学习protobuf语言需要掌握protobuf的基本语法和结构,包括消息类型、字段类型、标签、注释等。
- 学习protobuf的编译器和工具:protobuf编译器可以将protobuf定义文件编译成不同编程语言的数据交换格式,包括二进制格式、文本格式等。学习protobuf的编译器和工具需要掌握编译器的使用方法和相关工具的使用。
- 实践编写protobuf定义文件:通过编写实际的protobuf定义文件,可以深入了解protobuf的语法和结构,并且可以更好地掌握protobuf的使用方法和技巧。
- 学习protobuf的序列化和反序列化过程:protobuf的序列化和反序列化过程是实现不同平台和语言之间的数据传输的关键步骤。学习protobuf的序列化和反序列化过程需要掌握protobuf的序列化和反序列化方法,包括二进制格式、文本格式等。
- 学习protobuf的高级特性:protobuf除了基本的序列化数据格式功能外,还提供了很多高级特性,例如自定义扩展、自定义标签、自定义消息等。学习protobuf的高级特性需要深入了解protobuf的内部结构和实现原理。
6.总结: