《第6章对象序列化.ppt》由会员分享,可在线阅读,更多相关《第6章对象序列化.ppt(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、对象序列化对象序列化Java高级编程高级编程(第六讲第六讲)2知识回顾知识回顾n网络基础网络基础nIP地址和端口号地址和端口号nSocket基础基础nTCP Socket编程编程n基于多线程的基于多线程的Socket编程编程3教学内容教学内容n对象序列化概述对象序列化概述n支持序列化的接口和类支持序列化的接口和类ntransient关键字关键字n应用序列化编程应用序列化编程4重点、难点重点、难点n支持序列化的接口和类支持序列化的接口和类n应用序列化编程应用序列化编程5对象序列化概述对象序列化概述n对象记录自己状态的过程,通常被称之为对对象记录自己状态的过程,通常被称之为对象的序列化象的序列化(
2、Serialization)。也可以理解为把。也可以理解为把对象的状态写入一个字节流的过程对象的状态写入一个字节流的过程。n对象逆序列化对象逆序列化(Deserializing):从字节流中读:从字节流中读取对象的过程。取对象的过程。6支持序列化的接口和类支持序列化的接口和类nSerializable接口接口nExternalizable接口接口nObjectOutput接口接口nObjectInput接口接口nObjectOutputStream类类nObjectInputStream类类7Serializable接口接口n只有一个实现只有一个实现Serializable接口的对象可以被接口
3、的对象可以被序列化工具存储和恢复。序列化工具存储和恢复。nSerializable接口没有定义任何成员。它只用接口没有定义任何成员。它只用来表示一个类可以被序列化。如果一个类可来表示一个类可以被序列化。如果一个类可以序列化,它的所有子类都可以序列化。以序列化,它的所有子类都可以序列化。8Externalizable接口接口n可以让需要序列化的类实现可以让需要序列化的类实现Serializable接口接口的子接口的子接口ExternalizablenExternalizable接口表示实现该接口的类在序接口表示实现该接口的类在序列化中由该类本身来控制信息的写出和读入。列化中由该类本身来控制信息的
4、写出和读入。9ObjectOutputStream类类nObjectOutputStream类继承类继承OutputStre am 类类和实现和实现ObjectOutput 接口。它负责向流写入接口。它负责向流写入对象。对象。n构造器:构造器:n主要方法:主要方法:pwriteObject()向特定的文件或网络输出对象向特定的文件或网络输出对象ObjectOutputStream(OutputStream outStream)throws IOException10ObjectInputStream类类nObjectInputStream 继承继承InputStream 类并实类并实现现Obj
5、ectInput 接口。接口。ObjectInput Stream 负负责从流中读取对象。责从流中读取对象。n构造器:构造器:n主要方法:主要方法:preadObject()从特定的设备读出对象从特定的设备读出对象ObjectInputStream(InputStream inStream)throws IOException,StreamCorruptedExcept ion11对象写入流的条件对象写入流的条件n该类必须被声明为该类必须被声明为publicn该类必须实现该类必须实现Serializable接口接口n如果该类有直接或者间接的不可序列化的基如果该类有直接或者间接的不可序列化的基类
6、,那么该基类必须有一个默认的构造器。类,那么该基类必须有一个默认的构造器。该派生类需要负责将其基类中的数据写入流该派生类需要负责将其基类中的数据写入流中。中。12序列化的实例序列化的实例n代码示例见代码示例见6-1,6-213transientnTransient修饰的属性不进行序列化的操作,修饰的属性不进行序列化的操作,起到一定消息屏蔽的效果起到一定消息屏蔽的效果n被被transient修饰的属性可以正确的创建,但修饰的属性可以正确的创建,但被系统赋为默认值。即被系统赋为默认值。即int类型为类型为0,String类类型为型为null 14本章小结本章小结n掌握什么是对象序列化掌握什么是对象序列化n掌握支持序列化的类以及类中的主要方法掌握支持序列化的类以及类中的主要方法(readObject()和和writeObject()n怎么判断类的对象可以序列化。怎么判断类的对象可以序列化。(实现实现Serializable接口接口)n掌握掌握transient的使用的使用 n学会在网络中传输序列化的对象学会在网络中传输序列化的对象