序列化框架的选型和比对
序列化通信 将对象转换为字节数组,方便在网络中进行对象的传输。在网络通信中,不同的计算机进行相互通信主要的方式就是将数据流从一台机器传输给另外一台计算机,常见的传输协议包括了TCP,UDP,HTTP等,网络io的方式主要包括有了aio,bio,nio三种方式。 当客户端将需要请求的数据封装好了之后就需要进行转换为 二进制格式 再转换为流进行传输,当服务端接收到流之后再将数据解析为 二进制格式 的内容,再按照约定好的协议进行处理解析。最常见的场景就是rpc远程调用的时候,对发送数据和接收数据时候的处理。 下边我们来一一介绍一下现在比较常见的几款序列化技术框架。 jdk序列化 jdk自身便带有序列化的功能,Java序列化API允许我们将一个对象转换为流,并通过网络发送,或将其存入文件或数据库以便未来使用,反序列化则是将对象流转换为实际程序中使用的Java对象的过程。 先来看看实际的代码案例 首先我们创建一个基础的测试Person类 package com.sise.test; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; /** * @author linhao * @date 2019/8/15 *