本篇开始我们来聊聊关于序列化协议需要知道的一些内容。
问题【1】序列化协议分为哪几种?
两种。序列化(编码)是将对象序列化为二进制形式(字节数组),主要用于网络传输、数据持久化等;而反序列化(解码)则是将从网络、磁盘等读取的字节数组还原成原始对象,主要用于网络传输对象的解码,以便完成远程调用。
问题【2】影响序列化性能的关键因素有哪几点?
序列化后的码流大小(网络带宽的占用)、序列化的性能(CPU资源占用);是否支持跨语言(异构系统的对接和开发语言切换)。
问题【3】在常用序列化协议中,XML有哪些优点?
XML的优点:人机可读性好,可指定元素或特性的名称。
问题【4】在常用序列化协议中,XML有哪些缺点?
序列化数据只包含数据本身以及类的结构,不包括类型标识和程序集信息;只能序列化公共属性和字段;不能序列化方法;文件庞大,文件格式复杂,传输占带宽。
问题【5】在常用序列化协议中,XML的主要应用场景是?
XML适用场景:当做配置文件存储数据,实时数据转换。
问题【6】在常用序列化协议中,JSON和XML相比有哪些优点?
JSON,是一种轻量级的数据交换格式,优点:兼容性高、数据格式比较简单,易于读写、序列化后数据较小,可扩展性好,兼容性好、与XML相比,其协议比较简单,解析速度比较快。
问题【7】在常用序列化协议中,JSON和XML相比有哪些缺点?
数据的描述性比XML差、不适合性能要求为ms级别的情况、额外空间开销比较大。
问题【8】在常用序列化协议中,JSON的主要应用场景是?
适用场景(可替代XML):跨防火墙访问、可调式性要求高、基于Web browser的Ajax请求、传输数据量相对小,实时性要求相对低(例如秒级别)的服务。