A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhousuo28 中级黑马   /  2015-5-27 16:27  /  311 人查看  /  2 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

对象序列化和对象的反序列化
    对象中的数据: new Person() 自己成员变量
    如果对象数据基本不变,反复使用
  什么是序列化
     将对象中的数据,以二进制的形式,写入硬盘,永久保存
     二进制文件,可以在互联网上传输
  什么是反序列化
    将硬盘中存储的对象的二进制文件,读取出来,还原回对象中数据
   
  实现对象的序列化,有流对象支持
  写对象的流,实现对象的序列化     java.io.ObjectOutputStream
  读对象的流,实现对象的反序列化  java.io.ObjectInputStream


写对象的时候,出现了以异常
Exception in thread "main" java.io.NotSerializableException:
cn.itcast.iostream.Person

Person类,实现Serializable,开启序列化功能

静态:成员变量,属于自己的类,不属于对象,不能序列化

transient 修饰成员变量,用法只有这一种,阻止序列化

Serializable接口
里面没有抽象方法,实现后,不需要重写任何方法,接口存在意义就是个标记,
JVM看 到这个标记,给类序列化
凡是没有抽象方法的接口,都是标记型接口,给实现类做一个标记.

Exception in thread "main" java.io.InvalidClassException:
cn.itcast.iostream.Person; local class incompatible:
stream classdesc serialVersionUID = 8784174444617435087,
  local class serialVersionUID = 5970622219467240027
  
异常:序列号发生了冲突

2 个回复

倒序浏览
学习了:victory:
回复 使用道具 举报
膜拜大神!谢谢你!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马