对象序列化:将保存在内存中的对象数据转换为二进制流传送另一个设备。
序列化就是将某个对象的属性内容保存。(不含方法),如某个属性不需序列化,就将该属性在声明的时候带transient。
需序列化的类必须实现Serializable接口.
定义serialVersionUID是为了标示版本。Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体(类)的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常。
实现序列化:java.io.ObjectOutputStream
ObjectOutputStreamoo =new ObjectOutputStream(new FileOutputStream("E:/aaa.txt"));
oo.writeObject(new Hello());
反序列化:java.io.ObjectInputStream
readObject();
即先打开一个字节流设备,通过writeObject,readObject读写序列化对象。
1)Java序列化就是把对象转换成字节序列,Java反序列化就是把字节序列还原成Java对象。
2)采用Java序列化与反序列化技术,一是可以实现数据的持久化,在MVC模式中很是有用;二是可以对象数据的远程通信。