暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

序列化和持久化

测试备忘录 2021-10-18
514

数据持久化

    数据持久化,就是将数据(内存对象)保存到可以长时间保存的设备(磁盘)的过程。

    

    数据持久化就是让数据在 “持久状态” 和 “瞬间状态” 相互转换的一种机制(例如:IO 操作,JDBC 操作)。

    持久状态:系统或应用重启之后数据(内存对象)的状态依然存在。

    瞬间状态:系统或应用在工作时可操作的状态。

    

    持久化需要将对象的状态保存到数据库(或者文本文件、xml 文件等),也可通过读取持久化的对象状态还原对象(这个操作过程中包含了 “序列化” 过程)。


数据序列化

    数据序列化,就是将数据(内存对象)写入字节流和从字节流中读取对象的过程。


    数据序列化可以分为 “序列化” 和 “反序列化” 两大部分,分别对应了 “对象实例写入字节流” 和 “读取字节流还原对象实例” 两个过程。


    在 Java 中实现对象序列化,只需要对象实现 Serializable 接口即可。java.io 包中包含两个序列化的类,分别是 ObjectOutputStream 和 ObjectInputStream。


    通常情况下在 Java 中序列化是自动完成,但是如果需要自己控制序列化过程,则对象需要将 Serializable 替换为 Externalizable。可以利用 Externalizable 接口的 writeExternal() 与 readExternal() 方法控制对象的 “序列化” 和 “反序列化”。(注意:由于 writeExternal() 与 readExternal() 方法都是 public 方法,因此可能会存在安全隐患,请谨慎使用。)

文章转载自测试备忘录,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论