Apache Commons Lang3之SerializationUtils

概述

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());
总结:
  1. SerializationUtils的深度拷贝实现比较简单,不用实现Cloneable接口
  2. SerializationUtils的深度拷贝效率不如实现Cloneable接口高,我觉得实际开发中可以忽略
  3. SerializationUtils序列化和反序列化,是基于jdk自带的序列化,速度慢,占空间,不如Protostuff、Hessian、Kryo等专业序列化工具高,后续会总结其他的序列化方式的使用,请尽请期待

你可能感兴趣的:(Apache Commons Lang3之SerializationUtils)