// 简单过了下计算过程
定义并生成消息
syntax="proto3";
package com.test.pb;
option java_package = "com.test.protobuf";
option java_outer_classname = "PersonProto";
message Person {
int32 id=1;
}
测试类
Java在内存中占32位,protobuf占1个字节8位
package com.test.protobuf;
import java.util.Arrays;
/** protobuf的二进制序列化操作:
* 序列化时减少了额外信息
* 动态伸缩性保存字节
* */
public class TestProto {
public static void main(String[] args) throws Exception {
serialize();
System.out.println("----------");
deserialize();
}
public static void serialize() throws Exception {
PersonProto.Person.Builder builder = PersonProto.Person.newBuilder();
builder.setId(1);
com.test.protobuf.PersonProto.Person p = builder.build();
//
System.out.println(Arrays.toString(p.toByteArray()));
}
public static void deserialize() throws Exception {
PersonProto.Person.Builde