美文网首页
序列化 持久化

序列化 持久化

作者: 林桉 | 来源:发表于2018-05-03 09:28 被阅读17次

持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的对象存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等等。 持久化是将程序数据在持久状态和瞬时状态间转换的机制。 JDBC就是一种持久化机制。文件IO也是一种持久化机制。 持久化是一种对象服务,就是把内存中的对象保存到外存中,让以后能够取回。需要实现至少3个接口: void Save(object o) 把一个对象保存到外存中 Object Load(object oid) 通过对象标识从外存中取回对象 boolExists(object oid) 检查外存中是否存在某个对象 为什么需要持久化服务呢?那是由于内存本身的缺陷引起的。

 

 序列化 我们先跳开一下,看看另一个类似的有用概念:序列化也是一种对象服务,就是把内存中的对象序列化成流、或者把流反序列化成对象。需要实现2个接口: void Serialize(Stream stream,object o) 把对象序列化到流中 object Deserialize(Stream stream) 把流反序列化成对象 序列化和持久化很相似,有些人甚至混为一谈,其实还是有区别的,序列化是为了解决对象的传输问题,传输可以在线程之间、进程之间、内存外存之间、主机之间进行。我之所以在这里提到序列化,是因为我们可以利用序列化来辅助持久化,可以说凡是可以持久化的对象都可以序列化,因为序列化相对容易一些(也不是很容易),所以主流的软件基础设施,比如.net和java,已经把序列化的框架完成了。 持久化方案可以分为关系数据库方案、文件方案、对象数据库方案、xml数据库方案,现今主流的持久化方案是关系数据库方案,关系数据库方案不仅解决了并发的问题,更重要的是,关系数据库还提供了持久化服务之外的价值:统计分析功能。刚才我说到,凡是可以序列化的对象都可以持久化,极端的说,我们可以只建立一个表Object(OID,Bytes),但基本上没有人这么做,因为一旦这样,我们就失去了关系数据库额外的统计分析功能。

相关文章

  • Java序列化机制

    Java序列化机制 序列化和反序列化 Java序列化是Java内建的数据(对象)持久化机制,通过序列化可以将运行时...

  • 什么是序列化?常见的序列化协议有哪些?

    序列化和反序列化相关概念 什么是序列化?什么是反序列化? 如果我们需要持久化 Java 对象比如将 Java 对象...

  • Java序列化serializable

    序列化:序列化是将对象转成字节的过程反序列化:反序列化就是将字节还原为对象的过程 需要序列化的原因: 1)持久化:...

  • 面试技巧攻克-iOS中数据持久化

    一、持久化方案 1、iOS中有哪些持久化方案? (1)NSuserDefault(2)Plist(3)归档(序列化...

  • 分布式服务框架--第四章:序列化和反序列化

    序列化:Serialization称为编码,将对象序列化为字节数组,用于网络传输、数据持久化或者其他用途反序列化:...

  • RDD持久化策略

    RDD持久化是可以手动选择不同的策略的。比如可以将RDD持久化在内存中、持久化到磁盘上、使用序列化的方式持久化,多...

  • java day 19

    持久化和序列化 持久化持久化就是瞬间状态机制转换为持久状态。持久化的主要应用是将内存中的对象存储在数据库中,或者存...

  • java 序列化和反序列化

    使用Java的序列化和反序列化可以实现信息的持久存储要实现序列化必须实现java.io.Serializable这...

  • JAVA序列化

    什么是JAVA序列化 为什么需要序列化 对象持久化,序列化的对象可以摆脱JVM的生命周期; 网络数据传输 or R...

  • MapReduce序列化

    序列化就是把内存中的对象转换成字节序列以便于存储到磁盘(持久化)和网络传输。反序列化就是将字节序列或者是持久化的数...

网友评论

      本文标题:序列化 持久化

      本文链接:https://www.haomeiwen.com/subject/zaqkrftx.html