Atitit 持久化 Persistence概念的艺术

目录

1. 持久化是将程序数据在持久状态和瞬时状态间转换的机制。 1

2. DBC就是一种持久化机制。文件IO也是一种持久化机制。 2

3. 日常持久化的方法 2

4. 理解与分类 3

4.1. 二个层面 3

4.1.1. 应用层 3

4.1.2. 系统层 4

5. 持久化是一种对象服务实现至少3个接口 4

6. 类似概念序列化 4

7. 持久化方案可以分为关系数据库方案、文件方案、对象数据库方案、xml数据库方案 4

  1. 持久化是将程序数据在持久状态和瞬时状态间转换的机制。

持久化 编辑

持久化是将程序数据在持久状态和瞬时状态间转换的机制。通俗的讲,就是瞬时数据(比如内存中的数据,是不能永久保存的)持久化为持久数据(比如持久化至数据库中,能够长久保存)。

中文名 持久化 外文名 Persistence 方    法 通过逻辑处理接口储存数据 理    解 持久化是针对时间来说的

目录

1 定义

2 理解

3 二个层面

▪ 应用层

▪ 系统层

4 特点

▪ 对象

▪ 市场

▪ 序列化

5 意义

▪ 兴起原因

▪ 运用

6 相关实现

定义编辑

持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的对象存储在数据库中,或者存储在磁盘文件中、XML数据文件中等等。

持久化是将程序数据在持久状态和瞬时状态间转换的机制。

  1. DBC就是一种持久化机制。文件IO也是一种持久化机制。
  2. 日常持久化的方法

将鲜肉冷藏,吃的时候再解冻的方法也是。

将水果做成罐头的方法也是。

将人的脏器迅速冷冻,运输,然后解冻给人移植的技术也是。

  1. 理解与分类

编辑

我们这样理解:

在一定周期内保持不变就是持久化,持久化是针对时间来说的。

数据库中的数据就是持久化了的数据,只要你不去删除或修改。

比如在IE浏览器中一次Session会话中Session对象变量也是不变的,是Session容器中持久化。

对象持久化的方式有很多种,根据周期不同有,page,Session,Application。

对象序列化机制对于需要将对象的状态保存到文件中,而后能够通过读入对象状态来重新构造对象,恢复程序状态,

对象序列化的过程是对象持久化的方法之一,把对象保存到文件中。

  1. 二个层面

编辑

简单的理解持久化可以在二个层面:应用层和系统层、

  1. 应用层

如果关闭(shutdown)你的应用然后重新启动则先前的数据依然存在。

  1. 系统层

如果关闭(shutdown)你的系统(电脑)然后重新启动则先前的数据依然存在。

  1. 持久化是一种对象服务实现至少3个接口

,就是把内存中的对象保存到外存中,让以后能够取回。需要实现至少3个接口:

void Save(object o) 把一个对象保存到外存中

Object Load(object oid) 通过对象标识从外存中取回对象

boolExists(object oid) 检查外存中是否存在某个对象.

  1. 类似概念序列化

我们先跳开一下,看看另一个类似的有用概念:序列化Serialize也是一种对象服务,就是把内存中的对象序列化成流、或者把流反序列化成对象。需要实现2个接口:

void Serialize(Stream stream,object o) 把对象序列化到流中

object Deserialize(Stream stream) 把流反序列化成对象

序列化和持久化很相似,有些人甚至混为一谈,其实还是有区别的,序列化是为了解决对象的传输问题,传输可以在线程之间、进程之间、内存外存之间、主机之间进行。我之所以在这里提到序列化,是因为我们可以利用序列化来辅助持久化,可以说凡是可以持久化的对象都可以序列化,因为序列化相对容易一些(也不是很容易),所以主流的软件基础设施,比如.net和java,已经把序列化的框架完成了。

  1. 持久化方案可以分为关系数据库方案、文件方案、对象数据库方案、xml数据库方案

,现今主流的持久化方案是关系数据库方案,

关系数据库方案不仅解决了并发的问题,更重要的是,关系数据库还提供了持久化服务之外的价值:统计分析功能。刚才我说到,凡是可以序列化的对象都可以持久化,极端的说,我们可以只建立一个表Object(OID,Bytes),但基本上没有人这么做,因为一旦这样,我们就失去了关系数据库额外的统计分析功能。

关系数据库和面向对象之间有一条鸿沟,因为二者模式不匹配,所以就存在一个OR映射问题。

Atitit 持久化 Persistence概念的艺术 目录 1. 持久化是将程序数据在持久状态和瞬时状态间转换的机制。 1 2. DBC就是一种持久化机制。文件IO也是一种持久化机制。 2 3.相关推荐

  1. java中三种方法_Java文件I/O的三种方法

    Java文件I/O的三种方法 RandomAccessFile是不属于InputStream和OutputStream类系的.实际上,除了实现DataInput和DataOutput接口之外(Data ...

  2. java io 缓存读取_Java 文件IO写入读取四种方法

    第一种:字节流 FileInputStream  FileOutputStream 1.1 读取操作 //先创建一个和硬盘连接的流(打通硬盘和内存的通道) FileInputStream fis = ...

  3. Hibernate三种数据持久状态:临时态、游离态、持久化状态

    Hibernate中的三种状态   瞬时状态:刚创建的对象还没有被Session持久化.缓存中不存在这个对象的数据并且数据库中没有这个对象对应的数据为瞬时状态这个时候是没有OID(对象标识符).一般通 ...

  4. Hibernate中的三种数据持久状态和缓存机制

    Java三大框架之--Hibernate中的三种数据持久状态和缓存机制 Hibernate中的三种状态   瞬时状态:刚创建的对象还没有被Session持久化.缓存中不存在这个对象的数据并且数据库中没 ...

  5. linux几种快速清空文件内容的方法

    linux几种快速清空文件内容的方法 几种快速清空文件内容的方法: $ : > filename #其中的 : 是一个占位符, 不产生任何输出. $ > filename $ echo & ...

  6. PHP-四种解析XML文件的方法

    XML处理是开发过程中经常遇到的,PHP对其也有很丰富的支持,本文只是对其中某几种解析技术做简要说明,包括:Xml parser, SimpleXML, XMLReader, DOMDocument. ...

  7. java文件指针,Java 测试文件指针,java测试指针,两种方法打开文件并进行内

    Java 测试文件指针,java测试指针,两种方法打开文件并进行内 两种方法打开文件并进行内容定位package com.ronsoft.books.nio.channels;import java. ...

  8. 深入剖析Linux IO原理和几种零拷贝机制的实现

    本文来说下Linux IO原理和几种零拷贝机制的实现 文章目录 概述 物理内存和虚拟内存 物理内存 虚拟内存 内核空间和用户空间 内核空间 用户空间 Linux的内部层级结构 Linux I/O读写方 ...

  9. IO多路复用的三种机制Select,Poll,Epoll

    目录 1. IO多路复用 2.操作系统基础概念 3.Select 4.Poll 5.Epoll 6.总结 1. IO多路复用 I/O多路复用(multiplexing)的本质是通过一种机制(系统内核缓 ...

  10. Struts2中action接收参数的三种方法及ModelDriven跟Preparable接口结合JAVA反射机制的灵活用法...

    Struts2中action接收参数的三种方法及ModelDriven跟Preparable接口结合JAVA反射机制的灵活用法 www.MyException.Cn   发布于:2012-09-15 ...

最新文章

  1. 故障排除:硬盘坏道修复术
  2. editor 插入图片之后将光标放到右侧_通过vscode插件自动上传剪贴板图片至aws s3
  3. LESSON 9.4 集成算法的参数空间与网格优化
  4. c语言scanf()函数的原理
  5. java swing实现计算器_Java swing实现的计算器功能完整实例
  6. Individual Project
  7. python能够接收由键盘输入的函数是_python实现键盘输入的实操方法
  8. VTK:Points之PointOccupancy
  9. emacs python debug_我常用的 Python 调试工具 - 博客 - 伯乐在线
  10. 【LeetCode笔记】15.三数之和(JAVA、双指针)
  11. Unreal Engine 4 —— 版本兼容的工作原理以及一些可优化项
  12. [NLP]OpenNLP Maven工程的依赖
  13. 高反差保留滤镜学习OpenCV:滤镜系列(11)——高反差保留
  14. 边缘检测法之Roberts算子
  15. 致敬学长!J20航模遥控器开源项目计划【开局篇】 | 先做一个开机界面 | MATLAB图像二值化 | Img2Lcd图片取模 | OLED显示图片
  16. 怪物之心无法触发_《异度之刃2》稀有异刃力男怪物之心支线任务攻略
  17. 论文必备:深度学习中的网络结构是怎么画的
  18. 通过CURL请求示例详解HTTPS协议
  19. java mybatis的SpringBoot博客论坛管理系统
  20. 数字IC笔记——物理单元介绍(一)

热门文章

  1. php中怎么创建对象,php创建对象有哪几种方法
  2. 4个空格 tab vetur_Python成为专业人士笔记–程序行空白及tab缩进的作用
  3. 单CPU环境中如何实现多进程并行工作?
  4. Kafka技术资料总结(不断更新中)
  5. Android必知必会-使用Intent打开第三方应用及验证可用性
  6. POJ训练计划3096_Surprising Strings(STL/map)
  7. 内核中的TCP的追踪分析-9-TCP(IPV4)的socket的地址绑定--续2
  8. python爬虫,爬取猫眼电影top100
  9. BZOJ1196 [HNOI2006]公路修建问题 【二分 + Kruskal】
  10. 读Zepto源码之集合操作