1、序列化和反序列化的定义:
(1)Java序列化就是指把Java对象转换为字节序列的过程
Java反序列化就是指把字节序列恢复为Java对象的过程。
(2)序列化最重要的作用:在传递和保存对象时.保证对象的完整性和可传递性。对象转换为有序字节流,以便在网络上传输或者保存在本地文件中
2、序列化方法:
方法一:若类实现了serializable接口,则可以通过objectOutputstream和objectInputstream默认的序列化和反序列化方式,对非transient的实例变量进行序列化和反序列化。
方法二:若s类实现了serializable接口,并且定义了writeObject(objectOutputStream out)和
readObject(objectinputStream in)方法,则可以直接调用student类的两种方法进行序列化和反序列化。
比如:
1.先创建一个继承了serializable类的类
2.确定操作的文件并打开objectinputstream流
3.操作read()读入数据(对象),把类的对象序列化到txt文件(E:\\JavaXuLiehua\\Student\\Student1.txt)中,并对文件进行反序列化:
4.关闭objectinputstream流
会发现文件里的内容是不容易阅读的,只能通过反序列化读取。
3、transient关键字、serialVersionUID
----serialVersionUID是序列化前后的唯一标识符(默认如果没有人为显式定义过serialVersionUID,那编译器会为它自动声明,序列化后如果修改代码则无法反序列化)
----transient关键字可以让serialVersionUID不被修改