基础IO之序列化与反序列化

什么是序列化与反序列化

序列化

把对象转化为字节序列的过程称为对象的序列化。

反序列化

把字节对象恢复为过程称为对象的反序列化。

什么需要反序列化

  1. 把内存中的状态保存到一个文件中或者数据库中时候
  2. 用套接字在网络上传送对象的时候

实现序列化的方式

  1. Java对象序列化
  2. JSON序列化
  3. XML
  4. Protostuff
  5. Hession(它基于HTTP协议传输,使用Hession二进制序列化,对于数据包比较大的情况比较友好
  6. Dubbo Serialization(阿里Dubbo序列化)
  7. FST(高性能、序列化速度大概是JDK的4-10倍,大小是JDK的1/3左右
  8. 自定义协议进行序列化

如何实现序列化

import java.io.*;

public class SerializableTest {

    public static void main(String[] args) throws Exception {
        new SerializableTest.Person();
//        SerializableTest test = new SerializableTest();
//        test.new Person2();
        Person person = new SerializableTest.Person();
        //序列化
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        ObjectOutputStream oos = new ObjectOutputStream(
                new FileOutputStream("E:\\Java13\\io-study\\res/person"));
        oos.writeObject(person);
        //反序列化
        ObjectInputStream ois = new ObjectInputStream(
                new FileInputStream("E:\\Java13\\io-study\\res/person"));
        Person person1 = (Person)ois.readObject();
        System.out.println(person1);
    }
    private static class Person implements Serializable{
        private String name;
        private int age;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值