apache的序列化工具类SerializationUtils
Java中序列化是指,将Java对象转换为可存储传输的字节序列的过程。
序列化作用:
- 网络传输:网络可以传输字节化的java对象
- 数据安全:字节数据,方便在磁盘上存储
- 便于存储:可以将其存储在磁盘上,以供以后使用
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.10</version>
</dependency>
序列化
序列化之前,实体类需要实现Serializable接口。
//Person必须实现Serializable接口
Person p = new Person();
p.setName("张三");
byte[] bytes = SerializationUtils.serialize(p);
反序列化
Person p = new Person();
p.setName("张三");
byte[] b = SerializationUtils.serialize(p);
Person stuObject = SerializationUtils.deserialize(b);
//输出:Person{name='张三', age=0}
利用序列化实现深度克隆
//深克隆
Person p = new Person();
p.setName("张三");
SerializationUtils.serialize(p);
Person p2 = SerializationUtils.clone(p);
boolean isEqual = p == p2;
//输出:fasle
boolean isEqual2 = p.getName() == p2.getName();
//输出:fasle
//浅克隆(为更好理解深浅克隆的区别,这里举例浅克隆)
//浅克隆时,实体类需实现Cloneable接口
Person p = new Person();
p.setName("张三");
Person p2 = (Person) p.clone();
boolean isEqual = p == p2;
//输出:fasle
boolean isEqual2 = p.getName() == p2.getName();
//输出:true
标签:
实用技巧
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现