为什么要实现序列化

风陵南·2023-07-12 10:43·106 次阅读

为什么要实现序列化

序列化(Serialization)#

  • 序列化是将对象的状态信息转换为可以存储或传输形式的过程。在序列化期间,对象将其当前的状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象
  • 简单来说就是为了保存在内存中的各种对象的状态,并且可以把保存的对象状态再读出来。虽然你可以用自己的各种各样的方法来保存Object States,但是Java给你提供了一种应该比你自己好的保存对象状态的机制,那就是序列化

序列化的作用#

  • 序列化是针对自定义类型或者零散数据,好处是让数据方便存储和传输,可以统一存储和传输,标准序列化传递后,还可以一次读取出来。
  • 序列化的目的是标准化和可存储,通常用于数据库、文件操作以及和系统标准化函数进行通信

具体作用:

  1. 以某种存储形式使自定义对象持久化
  2. 将对象从一个地方传递到另一个地方
  3. 使程序更具维护性

序列化的三个使用场景#

  • 当你想把内存中的对象保存到一个文件中或者数据库中时
  • 当你想用套接字在网络上传送对象时
  • 当你想通过RMI传输对象时

注意#

  1. 当一个父类实现序列化,子类自动实现序列化,不需要显式实现Serializable接口
  2. 当一个对象的示例变量引用其他对象,序列化该对象时也把引用对象进行序列化
  3. 并非所有对象都可以序列化,原因:
    1. 安全方面的原因,比如一个对象拥有private,public等field,对于一个要传输的对象,比如要写到文件,或者进行RMI(远程方法调用)传输 等等,在序列化进行传输的过程中,这个对象 的private等域是不受保护的
    2. 资源分配方面的原因,比如socket,thread类,如果可以序列化进行传输或者保存,也无法对他们进行重新的资源分配,也没有必要这样实现

 

posted @   风陵南  阅读(106)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示
目录