什么是序列化

时间:2025-04-24 22:48:57

目录

前言

一、 什么是序列化

二、java如何进行序列化

1.

2.读入数据


前言

就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。


提示:以下是本篇文章正文内容,下面案例可供参考

一、 什么是序列化

就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。

我们将对象写入到本地文件的时候 报错:    :.
没有序列化异常
    
序列化: 将 java对象信息 转换成 二进制数据流的过程
反序列化: 将 二进制数据流 转换成 java对象信息的过程
    
IO操作的时候 操作的就是数据流,也就是说:进行读写的内容 必须以流的形式进行读写。此时我们的People对象 不能进行序列化 就说明不能转换成数据流 ,就不能进行IO读写。

二、java如何进行序列化

1.

序列化操作是一个非常复杂的算法操作,所以 java 官方给我们写好了。
但是使用的方式很特殊, java底层写好了序列化操作,但是官方并不确定 你的对象 是否需要 序列化操作。
此时官方玩了一手 接口标记 操作:
    如果你的对象 需要底层的序列化操作 你的对象 就实现一个接口
    public class People implements Serializable {}
    如果你的对象 不需要底层的序列化操作 就不需要实现这个接口
        
 此处就体现了接口的一个应用场景:  添加标记
我们查看源代码发现:
    public interface Serializable {}

序列化接口里面啥都没有,因为其存在的意义就是为了 添加标记

2.读入数据

代码如下(示例):

: .; local class incompatible: stream classdesc serialVersionUID = -6756687719523839819, local class serialVersionUID = 873305606511316975

存的时候版本 和取的时候不一样 就会报错。   
所以 我们一开始就要给其设定版本

public class People implements Serializable {


    private static final long serialVersionUID = 666L;

      String   name;
      int      level;
      double   money;

    public People(String name, int level, double money) {
         = name;
         = level;
         = money;
    }

}