Lesson 05

持久化Persistence

计算机结构

CPU - Memory - Disk

Disk

持久化存储数据

关机之后 依然在

Memory

存储数据

程序运行时,任何一个变量都会开在内存里

关机之后,就没了

CPU

用来计算

1 + 2 -> 3

持久化

关了还能用

文件

网络 发到服务器 服务器存储到文件里

文件操作

09_file

文件基本操作

File

文件读写

Apache Common IO

文件指针

有高级 API 可以直接修改文件内的某个字节区间内的值

序列化Serialization

问题

对象在内存里 是网状结构

文件 是1维的二进制

网络 是1维的二进制流

序列化 / 反序列化Serialization / Deserialization

对象 -> 二进制

二进制 -> 对象

拆毛衣 / 织毛衣

分析

优点:序列化之后的文件大小比较小

缺点:可读性非常低

字符串作为中介的序列化

想法

对象 -> 字符串 -> 二进制

分析
字符串 -> 二进制

有现成的解决方案

会有字符集的问题

对象 -> 字符串

可以写函数去拼接字符串

案例

10_serial

对象结构
List<Message>

Message 
+   text: String 
+   id: long 
字符串转移
message1.id | message1.text
message2.id | message2.text
message3.id | message3.text

ZZAX 微信公众

文档一更新,立刻告诉你