在讲解程序对象序列化相关问题前,我们先考虑一个问题:
什么是对象,对象是怎么产生的,对象又是以什么样的形式存在的?
对象是根据某种计算机语言语法规则在计算内存中开辟的一段内存空间,这段内存空间就代表一个程序对象。
1、为什么要对象序列化
对象序列化的主要作用有两个方面:保存对象和传输对象
1.1、保存对象:由于对象是存在内存中,内存在断电后数据都会消失,如果想要保存内存中的对象就需要一种机制,这种机制就是通过对象序列化,讲序列化后的对象数据进行存储。
1.2、传输对象:对象是根据某种计算机语言语法生成的,当在不同语言异构平台间进行对象数据传输时,可以通过在异构系统间定义一种共同的序列化协议,通过此协议生成序列化对象就可以在各异构平台间进行传输。
2、怎样进行对象序列化及各种序列化的特点
对象序列化大体分为两种:文本序列化和二进制序列化
文本序列化: 1、序列化成json,XML等可以以文本形式。
2、具有更高的夸平台性(hson和XML跨平台特性)。
3、适合于与第三方平台间进行对象数据传输。
二进制序列化:1、二近制序列化,顾名思义序列化后的文件一串二进制,无法以明文展示 。
2、需要根据序列化协议制定特定的解析方式。
3、用于系统内部服务间进行对象数据传输(例如:微服务中服务与服务间)。
4、相对文本序列化,二进制序列化对象一般具有更高的效率。
3、对象返序列化
根据序列化对象文件逆向在内存中生成程序对象的过程。
4、序列化安全问题
对象序列化到文件中或将序列化后的对象通过网络传输等,在进行反序列之前都存在被串改的可能,所以在进行对象序列化时要考虑到返序列化的安全性问题,可以通过定义某种加密方式来实现。