什么是java序列化,如何实现java序列化?.pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
Java 序列化机制 Java 序列化是将一个对象的状态写入一个 Byte 流里,并且可以从其它地方把该 Byte 流里的数据读出来,重新构造一个相同的对象。这种机制允许你将对象通过网络进行传播,并可以随时把对象持久化到数据库、文件等系统里。 Java 序列化机制是 RMI、EJB 等技术的技术基础。用途包括: 1. 利用对象的串行化实现保存应用程序的当前工作状态,下次再启动的时候将自动地恢复到上次执行的状态。 2. 序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。 序列化的实现: 1. 将需要被序列化的类实现 Serializable 接口。 2. 使用一个输出流(如:FileOutputStream)来构造一个 ObjectOutputStream 对象。 3. 使用 ObjectOutputStream 对象的 writeObject(Object obj) 方法将参数为 obj 的对象写出(即保存其状态)。 4. 要恢复的话则用输入流。 串行化的特点: 1. 如果某个类能够被串行化,其子类也可以被串行化。如果该类有父类,则分两种情况来考虑: * 如果该父类已经实现了可串行化接口,则其父类的相应字段及属性的处理和该类相同。 * 如果该类的父类没有实现可串行化接口,则该类的父类所有的字段属性将不会串行化。 2. 声明为 static 和 transient 类型的成员数据不能被串行化。因为 static 代表类的状态,transient 代表对象的临时数据。 相关的类和接口: 1. ObjectOutput 接口:它继承 DataOutput 接口 并且支持对象的串行化,其内的 writeObject() 方法实现存储一个对象。 2. ObjectInput 接口:它继承 DataInput 接口并且支持对象的串行化,其内的 readObject() 方法实现读取一个对象。 3. ObjectOutputStream 类:它继承 OutputStream 类并且实现 ObjectOutput 接口。利用该类来实现将对象存储(调用 ObjectOutput 接口中的 writeObject() 方法)。 4. ObjectInputStream 类:它继承 InputStream 类并且实现 ObjectInput 接口。利用该类来实现读取一个对象(调用 ObjectInput 接口中的 readObject() 方法)。 对于父类的处理,如果父类没有实现串行化接口,则其必须有默认的构造函数(即没有参数的构造函数)。否则编译的时候就会报错。在反串行化的时候,默认构造函数会被调用。但是若把父类标记为可以串行化,则在反串行化的时候,其默认构造函数不会被调用。这是因为 Java 对串行化的对象进行反串行化的时候,直接从流里获取其对象数据来生成一个对象实例,而不是通过其构造函数来完成。
- 粉丝: 10
- 资源: 15万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助