序列化和反序列化
2019-03-27 本文已影响0人
Jeffery大侠
(一)定义
序列化:把实体转化为二进制,保存到磁盘或者进行网络传输。
反序列化:序列化过程中所生成的二进制串转换成数据结构或者对象的过程。
(二)接口
接口:Java.lang.Serializable
String之所以可以写入文件,也是因为它实现了该接口,Java 中大多数类都实现了该接口,比如:String,Integer
设计方法:在 Java 中使用对象流来完成序列化和反序列化
ObjectOutputStream:通过 writeObject()方法做序列化操作
ObjectInputStream:通过 readObject() 方法做反序列化操作
(三)serialVersionUID
序列化版本问题,在完成序列化操作后,由于项目的升级或修改,可能我们会对序列化对象进行修改,比如增加某个字段,那么我们在进行反序列化就会报错:
解决办法:在 JavaBean 对象中增加一个 serialVersionUID 字段,用来固定这个版本,无论我们怎么修改,版本都是一致的,就能进行反序列化了
1privatestaticfinallongserialVersionUID = 8656128222714547171L;
(四)例子


