为什么要实现序列化
威尔士世界杯
2025-06-17 05:06:37
序列化(Serialization)
序列化是将对象的状态信息转换为可以存储或传输形式的过程。在序列化期间,对象将其当前的状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象
简单来说就是为了保存在内存中的各种对象的状态,并且可以把保存的对象状态再读出来。虽然你可以用自己的各种各样的方法来保存Object States,但是Java给你提供了一种应该比你自己好的保存对象状态的机制,那就是序列化
序列化的作用
序列化是针对自定义类型或者零散数据,好处是让数据方便存储和传输,可以统一存储和传输,标准序列化传递后,还可以一次读取出来。
序列化的目的是标准化和可存储,通常用于数据库、文件操作以及和系统标准化函数进行通信
具体作用:
以某种存储形式使自定义对象持久化
将对象从一个地方传递到另一个地方
使程序更具维护性
序列化的三个使用场景
当你想把内存中的对象保存到一个文件中或者数据库中时
当你想用套接字在网络上传送对象时
当你想通过RMI传输对象时
注意
当一个父类实现序列化,子类自动实现序列化,不需要显式实现Serializable接口
当一个对象的示例变量引用其他对象,序列化该对象时也把引用对象进行序列化
并非所有对象都可以序列化,原因:
安全方面的原因,比如一个对象拥有private,public等field,对于一个要传输的对象,比如要写到文件,或者进行RMI(远程方法调用)传输 等等,在序列化进行传输的过程中,这个对象 的private等域是不受保护的
资源分配方面的原因,比如socket,thread类,如果可以序列化进行传输或者保存,也无法对他们进行重新的资源分配,也没有必要这样实现