文章目录
- 一、序列化的定义
- 二、为什么需要序列化呢?
- 三、如何序列化
- 四、案列实现
- 4.1、将对象序列化位二进制流
- 4.2 将序列化后的二进制流反序列化为对象
- 五、总结
一、序列化的定义
💡 所谓的序列化就是将Java 中的对象
转换成一种流的形式(二进制流),可以对转换后的流进行文件的读写以及在网络中传输。反序列化就是将二进制流重新恢复成对象
的形式。
二、为什么需要序列化呢?
持久化
:将对象持久化后可以将其保存到存储设备中,方便以后再次使用。更好的在网络中传输
:如果不进行序列化,对象在网络中传输可能存在乱序或者不可传输的问题。
三、如何序列化
🎨 在Java中是如何进行序列化的呢?
首先我们需要对需要序列化的对象实现Serializable
接口,再添加一个序列化版本ID号:
private static final long serialVersionUID = 46465216595642L;
通过对象输出流ObjectOutputStream
可以实现对象的序列化,通过对象输入流ObjectInputStream
可以实现对象的反序列化,也就是将二进制流还原成Java对象。
四、案列实现
⚠️接下来,让我们序列化一个User对象,揭开这层神秘的面纱!
✏️首先我们定义一个User
用户类:
✏️然后对象变量,设置如下值:
User user = new User(1001, "admin");
4.1、将对象序列化位二进制流
✏️通过工具打开文件查看内容,可以看到序列化后
的内容
4.2 将序列化后的二进制流反序列化为对象
✏️可以明显发现,又把那一堆我们看不懂的二进制流
变成了我们Java中的对象
了。
User{id=1001, name='admin'}
五、总结
序列化
:将对象转换为二进制。
反序列化
:将对象从二进制恢复为对象。