概述
SerializationUtils是Java序列化工具类,主要有以下几个功能:
- 使用序列化进行深度克隆
- 序列化对象
- 反序列化对象
深度克隆的实例:
一、User 实体类
//需要实现序列化接口
public class UserDO implements Serializable {
/**
* 姓名
*/
private String name;
/**
* 年龄
*/
private Integer age;
public String getName() {
return name;
}
public UserDO setName(String name) {
this.name = name;
return this;
}
public Integer getAge() {
return age;
}
public UserDO setAge(Integer age) {
this.age = age;
return this;
}
}
二、使用SerializationUtils对UserDO进行深度克隆
UserDO userDO = new UserDO()
.setName("小明")
.setAge(10);
//深度克隆
UserDO userDO1 = SerializationUtils.clone(userDO);
//验证
System.out.println(userDO == userDO1);//返回 false
对象的序列化和反序列化实例:
UserDO userDO = new UserDO()
.setName("小明")
.setAge(10);
//序列化为byte数组
byte[] bytes = SerializationUtils.serialize(userDO);
//反序列化对象
UserDO userDO1 = SerializationUtils.deserialize(bytes);
//输出对象的结果
System.out.println(userDO1.getName());
System.out.println(userDO1.getAge());
总结:
- SerializationUtils的深度拷贝实现比较简单,不用实现Cloneable接口
- SerializationUtils的深度拷贝效率不如实现Cloneable接口高,我觉得实际开发中可以忽略
- SerializationUtils序列化和反序列化,是基于jdk自带的序列化,速度慢,占空间,不如Protostuff、Hessian、Kryo等专业序列化工具高,后续会总结其他的序列化方式的使用,请尽请期待
网友评论