概述
SerializationUtils是Java序列化工具類壮池,主要有以下幾個(gè)功能:
- 使用序列化進(jìn)行深度克隆
- 序列化對(duì)象
- 反序列化對(duì)象
深度克隆的實(shí)例:
一糯钙、User 實(shí)體類
//需要實(shí)現(xiàn)序列化接口
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對(duì)UserDO進(jìn)行深度克隆
UserDO userDO = new UserDO()
.setName("小明")
.setAge(10);
//深度克隆
UserDO userDO1 = SerializationUtils.clone(userDO);
//驗(yàn)證
System.out.println(userDO == userDO1);//返回 false
對(duì)象的序列化和反序列化實(shí)例:
UserDO userDO = new UserDO()
.setName("小明")
.setAge(10);
//序列化為byte數(shù)組
byte[] bytes = SerializationUtils.serialize(userDO);
//反序列化對(duì)象
UserDO userDO1 = SerializationUtils.deserialize(bytes);
//輸出對(duì)象的結(jié)果
System.out.println(userDO1.getName());
System.out.println(userDO1.getAge());
總結(jié):
- SerializationUtils的深度拷貝實(shí)現(xiàn)比較簡(jiǎn)單,不用實(shí)現(xiàn)Cloneable接口
- SerializationUtils的深度拷貝效率不如實(shí)現(xiàn)Cloneable接口高,我覺得實(shí)際開發(fā)中可以忽略
- SerializationUtils序列化和反序列化,是基于jdk自帶的序列化藏古,速度慢瓦糕,占空間,不如Protostuff、Hessian、Kryo等專業(yè)序列化工具高臣缀,后續(xù)會(huì)總結(jié)其他的序列化方式的使用,請(qǐng)盡請(qǐng)期待