知识大全 Java中的强大武器--对象的序列化

Posted 武器

篇首语:读书是学习,使用也是学习,而且是更重要的学习。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java中的强大武器--对象的序列化相关的知识,希望对你有一定的参考价值。

Java中的强大武器--对象的序列化  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  所谓对象序列化就是将对象的状态转换成字节流 以后可以通过这些值再生成相同状态的对象 这个过程也可以通过网络实现 可以先在Windows机器上创建一个对象 对其序列化 然后通过网络发给一台Unix机器 然后在那里准确无误地重新 装配 是不是很神奇     也许你会说 只了解一点点 但从来没有接触过 其实未必如此 RMI Socket JMS EJB你总该用过一种吧 彼此为什么能够传递Java对象 当然都是对象序列化机制的功劳     第一次使用Java的对象序列化是做某项目 当时要求把几棵非常复杂的树(JTree)及相应的数据保存下来(就是我们常用的保存功能) 以便下次运行程序时可以继续上次的操作     那时XML技术在网上非常的热 而且功能也强大 再加上树的结构本来就和XML存储数据的格式很像 作为一项对新技术比较有兴趣的我当然很想尝试一下 不过经过仔细分析 发现如果采用XML保存数据 后果真是难以想象 哪棵树的哪个节点被展开 展开到第几级 节点当前的属性是什么 真是不知该用A B C还是用 来表示     还好 发现了Java的对象序列化机制 问题迎刃而解 只需简单的将每棵树的根节点序列化保存到硬盘上 下次再通过反序列化后的根节点就可以轻松的构造出和原来一模一样的树来     其实保存数据 尤其是复杂数据的保存正是对象序列化的典型应用 最近另一个项目就遇到了需要对非常复杂的数据进行存取 通过使用对象的序列化 问题同样化难为简     对象的序列化还有另一个容易被大家忽略的功能就是对象复制(Clone) Java中通过Clone机制可以复制大部分的对象 但是众所周知 Clone有深层Clone和浅层Clone 如果你的对象非常非常复杂 假设有个 层的Collection(夸张了点) 如果你想实现深层Clone 真是不敢想象 如果使用序列化 不会超过 行代码就可以解决     还有就是Swing组件 如果你有两个很象很象(或是一模一样)的比较难以构造的Swing组件 你该怎么办 也许你想到了Clone 但是偏偏Java的Swing组件没有提供Clone方法 别急 使用序列化 行代码搞定     ByteArrayOutputStream  byteOut = new ByteArrayOutputStream();  ObjectOutputStream out  = new ObjectOutputStream(byteOut);  out writeObject(bo);    ByteArrayInputStream byteIn = new ByteArrayInputStream(byteOut toByteArray());  ObjectInputStream in  =new ObjectInputStream(byteIn);  JComboBox b = (JComboBox)in readObject();    虽然Java的序列化非常简单 强大 但是要用好 还有很多地方需要注意 比如曾经序列化了一个对象 可由于某种原因 该类做了一点点改动 然后重新被编译 那么这时反序列化刚才的对象 将会出现异常     你可以通过添加serialVersionUID属性来解决这个问题 如果你的类是个单态(Singleton)类 是否允许用户通过序列化机制复制该类 如果不允许你需要谨慎对待该类的实现 cha138/Article/program/Java/Javascript/201311/25301

相关参考

知识大全 Java对象序列化与RMI

Java深度历险:Java对象序列化与RMI  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  对于

知识大全 浅谈Java对象的序列化和反序列化

浅谈Java对象的序列化和反序列化  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  当两个进程在进

知识大全 使用JID来进行Java对象的高性能序列化

使用JID来进行Java对象的高性能序列化  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  JID

知识大全 Java图像传输方法

Java图像传输方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一序列化后传输  图像对象可

知识大全 关于Java单元测试中的伪对象介绍(图)

关于Java单元测试中的伪对象介绍(图)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在单元测

知识大全 JavaIO 6—对象的序列化

JavaIO6—对象的序列化  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  对于对象的序列化可能

知识大全 java序列化--java.io.Serializable接口解析

java序列化--java.io.Serializable接口解析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一

知识大全 ios开发如何进行对象序列化和反序列化

cha138/Article/program/yd/201404/30432

知识大全 通过XML模板替换实现对象的灵活序列化

通过XML模板替换实现对象的灵活序列化  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  前阵子在写

知识大全 java使用序列化实现深克隆

  序列化实现深克隆  publicstaticObjectdeepClone(Objectsource)  ObjectOutputStreamoos=null;  ObjectInputStrea