《Apache Dubbo微服务开发从入门到精通》——迁移到 Dubbo3——三、 迁移到 HTTP/2 协议(4): https://developer.aliyun.com/article/1223556
2. Protobuf 与 Java Interface 模式的对比
1) 数据类型
a) 基本类型
注:
在 Java 中,无符号的 32 位和 64 位整数使用它们的有符号对数来表示,顶部位只存储在符号位中。
2) 复合类型
a) 枚举
• 原始 pb 代码
• 生成的 java 代码
注:
枚举是常量,因此采用大写。
b) 数组
• 原始 pb 代码
• 生成的 java 代码
注:
底层实际上是 1 个 ArrayList。
c) 集合
PB 不支持无序、不重复的集合,只能借用数组实现,需要自行去重。
d) 字典
• 原始 pb 代码
• 生成的 java 代码
e) 嵌套
• 原始 pb 代码
• 生成的 java 代码
3) 字段默认值
• 对于字符串,默认值为空字符串。
• 对于字节,默认值为空字节。
• 对于 bools,默认值为 false。
• 对于数字类型,默认值为零。
• 对于枚举,默认值为第一个定义的枚举值,它必须为 0。
• 对于消息字段,未设置字段。 它的确切值是语言相关的。 有关详细信息,请参阅生成的代码指南。
4) 整体结构
5) 社区资料
• 社区主页地址:https://developers.google.cn/protocol-buffers/
• 社区开源地址:https://github.com/google/protobuf
• 相关 jar 的 maven: