序列化
参考网站: https://blog.csdn.net/u013870094/article/details/82765907
**(百度百科)**是将对象的状态信息转换成可以存储和传输的形式的过程。
在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。
**(其他释义)**序列化:把对象转换为字节序列的过程称为对象的序列化。
反序列化:把字节序列恢复为对象的过程称为对象的反序列化。
形象一点(把对象存为文本格式为例)
new 一个实例出来后
现在想把这个对象以txt文本的格式保存起来
直接将该类以流的方式写到txt文件中去?确实是这样,但是这有个要求,必须实现序列化
实现序列化的类才可以进行类似 传 / 存 之类的操作
如何再将对象从刚刚存的txt文档中拿回来?还是用流再写进来,这就是反序列化
反序列化 将使用输入流读取刚刚txt文件,用一个对象来接收读入的值,拿到的就是之前存的那个实例数据
带有static修饰的字段不能被序列化
实现序列化的类会生成一个serialVersionUID的值
这个ID是实现了序列化的类的 ID, 反序列化时 将相同ID的对象放到相同ID的类中 若ID不同了就报异常
如果没有定义该ID java会指定一个随机数作为id ,如果后期修改过这个类的属性或者方法这个序列化的类会出现无法反序列化的现象,抛出异常