电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

Java深刻解析序列化

Java深刻解析序列化_第1页
1/6
Java深刻解析序列化_第2页
2/6
Java深刻解析序列化_第3页
3/6
Java 序列化 序列化的用处: 对象需要远程调用(比如说socket) 对象需要在不同的进程间调用 对象需要永久存放在硬盘上(脱离对象运行环境,编写成一个以字符串形式存在的对象,需要时,通过获取字符串,反序列化就能实现获取一个对象) 首先说明一下序列化的知识: java 中的序列化(serialization)机制能够将一个实例对象的状态信息写入到一个字节流中,使其可以通过socket 进行传输、或 者持久化存储到数据库或文件系统中;然后在需要的时候,可以根据字节流中的信息来重构一个相同的对象。序列化机制在java 中有着广泛的应用,EJB、 RMI 等技术都是以此为基础的。 序列化机制是通过java.io.ObjectOutputStream 类和java.io.ObjectInputStream 类来实现的。在 序列化(serialize)一个对象的时候,会先实例化一个ObjectOutputStream 对象,然后调用其writeObject()方法;在 反序列化(deserialize)的时候,则会实例化一个ObjectInputStream 对象,然后调用其readObject()方法。 Java 的序列化机制是通过在运行时判断类的serialVersionUID 来验证版本一致性的。在进行反序列化时,JVM 会把传来的字节流中 的serialVersionUID 与本地相应实体(类)的serialVersionUID 进行比较,如果相同就认为是一致的,可以进行反序列化,否则 就会出现序列化版本不一致的异常。 当实现java.io.Serializable 接口的实体(类)没有显式地定义一个名为serialVersionUID, 类型为 long 的变 量时,Java 序列化机制会根据编译的class 自动生成一个serialVersionUID 作序列 化 版 本 比 较 用 , 这 种 情 况 下 , 只 有 同 一 次 编 译 生 成 的 class 才 会 生 成 相 同 的serialVersionUID 。 如果我们不希望通过编译来强制划分软件版本,即实现序列化接口的实体能够兼容先前版本,未作更改的类,就需要显式地定义一个名为serialVersionUID,类型为long 的变量,不修改这个变量值的序列化实体都可以相互进行串行化和反串行化。 设置 serialVersionUID 默认的生成方式: private static final long serialVersionUID = 545456546548431L; serialVersionUID 的作用:serialVersionUID 用来表明类的不同版本间的兼容性。如果你修改了此类, 要修改此值。否则以前用老版本的类序列化的类恢复时会出错。 在 JDK 中,可以利用 JDK 的 bin 目录下的 serialver.exe 工具产生...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

Java深刻解析序列化

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部