【JavaIO流】序列化与反序列化

序列化与反序列化

序列化:是一种对象持久化的手段:指将对象转换为字节流的过程。

反序列化:是根据字节流恢复对象的过程。

序列化的作用:

  • 把对象的字节序列化永久的存放在磁盘上,通常放在一个文件夹下。
  • 在网络上传输对象的字节序列。

对象序列化用于将一个对象转换为字节流的过程,可以将对象序列化之后保存在磁盘中或者通过网络发送至另外一个程序,对象序列化可以把对象转换为与平台无关的字节流,在不同平台都可以反序列化为之前的对象。


序列化和反序列化的实现步骤

1、首先,如果一个类要进行序列化的相关操作,那么就必须要实现Serializable 接口,进行标记。表示此类可以被序列化。

2、其次,我们要使用ObjectOutputStream / ObjectInputStream 进行序列化和反序列化。

class B implements Serializable {
   
    private String kind;

    public B(String kind) {
   
        this.kind = kind;
    }
    
    //省略get/set方法
}

//Serializable  标记接口
class Dog implements Serializable {
   
    private static final long serialVersionUID = -7054078879904171713L;
    //默认就是1L
    private String name;
    private transient int age;   //当你不想让某个字段序列化,或者不想让某个字段按照默认方式
    //序列化  就是用这个字段

    public Dog(String name, int age) {
   
        this.name = name;
        this.age = age;
    }
    
    //省略get/set方法
    
    //重新定义序列化方式
    private void writeObject(ObjectOutputStream out) {
   
        try {
   
            //会对一些没有被transient修饰的字段使用默认方式序列化
            out.defaultWriteObject();
            //md5
            age = age * 9 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值