一、什么是序列化和持久化
这两个概念初学很容易搞混,甚至网上不少博客在提起这两者时也是混为一谈,语焉不详。
1.1什么是持久化
持久化_百度百科 (baidu.com) 百度定义。
简而言之,持久化就是我们将内存中的对象写入存储设备的过程。
1.2 什么是序列化
序列化是指将对象转换成字节流,从而存储对象或将对象传输到内存、数据库或文件的过程。 它的主要用途是保存对象的状态,以便能够在需要时重新创建对象。 反向过程称为“反序列化”。
简而言之,一个想要存储或者传输的对象,必须先序列化为字节流。比如Json序列化,XML序列化。将对象序列化为按Json格式的字节流然后传输。
1.3 两者的区别和联系
持久化将对象永久存储在存储设备上,序列化将对象转化为可以传输的字节序列。
持久化可以总结为先序列化,然后调用文件IO写入。
两者概念有交集,但也有区别。我们借助序列化实现持久化,但我们使用序列化并不一定是为了持久化,也可能仅仅是网络传输。
引用其他博客的一句话:序列化技术侧重于解决对象的传输问题,持久化技术侧重于解决对象的存储问题。
二、序列化方式
2.1 常见的序列化方式
Json序列化,XML序列化,Excel序列化,二进制序列化等等。
2.2 Unity中的序列化
prefab文件,ScriptableObject类,以及Inspector面板上可以调节的属性值等等都是Unity提供的序列化方式。
凡是按照某种格式序列化对象的,我们都可以认为是一种序列化方式,当然我们也可以实现自定义序列化。
文章引用: