1. 序列化
1.1 概念
数据存储在程序中有两种:
(1)存储在内存中,称为内存对象或是内存数据,其为临时的数据
(2)数据是存储在磁盘中,其为永久数据
序列化:将数据结构或对象转换成二进制串的过程
User对象 ---------转换规则----------> 10101010 (本质理解:序列化就是数据结构或对象如何转换成二进制串的规则)
反序列化:将在序列化过程中所生成的二进制串转换成数据结构或者对象的过程
1.2 什么时候需要序列化
(1)数据结构或对象写入磁盘,以及从磁盘中的二进制串读取对象
(2)网络传输数据
1.3 序列化的本质是什么
就是指定一个读写规则(对象转二进制的规则,二进制转对象的规则)
(1)序列化:将内存中的对象数据持久化到磁盘中,将一端的对象通过网络发送到另一端,即对象---->二进制数据
(2)反序列化:将磁盘中的数据变成内存对象数据,接收远程的二进制数据转换成对象 ,即二进制数据--->对象
注意:自定义的写属性要和读取属性的顺序一致
如,写的第一个属性大小为4bytes,第二个属性的大小为8bytes,若读取数据的时候先读取第二个数据的话,程序就会先读取第一个属性的4个字节以及第二个属性的前四个字节,这样数据的内容就被破坏了
2. 迭代器
迭代,在不知道数据的内部存储结构的情况下可以获取数据