为什么要序列化?
- 对象需要序列化保存,反序列化读取。对象都是驻留在JVM中,或者C++的运行时环境,当这些环境down了,对象就不存在了
- 数据都是以字节流传输的,对象需要转换
分类
按照序列后的数据格式分:字节流,Json,Xml等
字节流
- 基于Java IO的API,序列化:使用反射判断字段类型,转成字节,使用字节流写入到文件;反序列化使用字节流读文件,通过反射创建对象。相当于整个过程自己实现,代码就不贴了
- Java Api也提供了序列化,网上例子很多
Json
常见的有Gson,Jackson等
Xml
常见的有XmlEncode、XmlDecoder,Xstream,Jaxb等