我们可以把序列化以后的数据打印出来看看结果
public static void main(String[] args) {
UserProtos.User user = UserProtos.User.newBuilder().
setAge(300).setName("Mic").build();
byte[] bytes=user.toByteArray();
for(byte bt:bytes){
System.out.print(bt+" ");
}
}
我们可以看到,序列化出来的数字基本看不懂,但是序列化以后的数据确实很小,那我们接下来带大家去了解一下底层的原理
正常来说,要达到最小的序列化结果,一定会用到压缩的技术,而protobuf里面用到了两种压缩算法,一种是varint,另一种是zigzag