ObjectOutputStream(序列化)、ObjectInputStream(反序列化)

ObjectOutputStream 序列化 Serialize 将对象存储到文件中,将java对象状态保存下来        writeObject(obj)
ObjectInputStream 反序列化 DeSerialize 将硬盘上的数据重新恢复到内存当中,恢复成java对象     readObject()
参与序列化和反序列化的对象必须实现Serializable接口
Serializable是一个标志型接口 没有代码 起标识作用,java虚拟机看到某个类实现了这个接口可能会对这个类特殊处理
Serializable这个标志接口是给java虚拟机参考的,java虚拟机看到这个接口之后会为该类自动生成一个序列化版本号
序列化多个对象,将对象放到集合中再进行序列化,  因为逐个使用writeObjecct()方法会报错
*java语言中采用什么机制来区分类:
1.首先通过类名进行比较,如果类名不一样,肯定不是同一个类
2.如果类名一样,再通过序列化版本号进行区分

transient关键字,表示游离的,不参与序列化
对象的类代码改动,再次编译时序列化版本号会发生改变,再次反序列化时出现异常序列化版本号不一致
凡是一个类实现了Serializable接口,建议给该类提供一个固定的序列化版本号
private static final long serialVersionUID =

posted @ 2020-08-09 16:31  javase-->  阅读(150)  评论(0)    收藏  举报