知识大全 关于java中的对象序列化
Posted 知
篇首语:仰天大笑出门去,我辈岂是蓬蒿人。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 关于java中的对象序列化相关的知识,希望对你有一定的参考价值。
java对象序列化机制一般来讲有两种用途 需要将对象的状态保存到文件中 而后能够通过读入对象状态来重新构造对象 恢复程序状态 使用套接字在网络上传送对象的程序来说 是很有用的 我们通过让类实现java io Serializable 接口可以将类序列化 这个接口是一个制造者(marker)接口 也就是说 对于要实现它的类来说 该接口不需要实现任何方法 它主要用来通知Java虚拟机(JVM) 需要将一个对象序列化 对于这个 有几点我们需要明确 并非所有类都可以序列化 在cmd下 我们输入serialver socket 可以得到socket是否可序列化的信息 实际上socket是不可序列化的 java有很多基础类已经实现了serializable接口 比如string vector等 但是比如hashtable就没有实现serializable接口 将对象读出或者写入流的主要类有两个: ObjectOutputStream与ObjectInputStream ObjectOutputStream 提供用来将对象写入输出流的writeObject方法 ObjectInputStream提供从输入流中读出对象的readObject方法 使用这些方法的对象必须已经被序列化的 也就是说 必须已经实现Serializable接口 如果你想writeobject一个hashtable对象 那么 会得到一个异常 下面举个例子 import java io *; public class testser implements Serializable public int ii; testser() testser( int param ) ii = param; testser是一个实现了serializable接口的类 读写这个序列化过的类 import java io *; public class Ser private static String datafile; datafile= ser data ; public static void main( String[] argv ) System out println( Java Serialization Demo ); SerData data; try ObjectInputStream in = new ObjectInputStream ( new FileInputStream( datafile )); data = (SerData) in readObject(); in close(); catch (Exception e) data = new testser(); System out println( Original data: ii = + data ii ); data ii++; try ObjectOutputStream out = new ObjectOutputStream ( new FileOutputStream( datafile ) ); out writeObject( data ); out flush(); out close(); catch (Exception e) System out println( e ); 还有可以通过套接字传递序列化对象 大概类似 看到这里或许很多人都会有个疑问 是否所有的对象都可以序列化呢? 当然是不可以的了 至于为什么不可以 那就有很多原因了 比如: 安全方面的原因 比如一个对象拥有private public等field 对于一个要传输的对象 比如写到文件 或者进行rmi传输等等 在序列化进行传输的过程中 这个对象的private等域是不受保护的 资源分配方面的原因 比如socket thread类 如果可以序列化 进行传输或者保存 也无法对他们进行重新的资源分配 而且 也是没有必要这样实现 cha138/Article/program/Java/hx/201311/25611相关参考
Java深度历险:Java对象序列化与RMI 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 对于
浅谈Java对象的序列化和反序列化 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 当两个进程在进
使用JID来进行Java对象的高性能序列化 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! JID
关于Java单元测试中的伪对象介绍(图) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在单元测
Java图像传输方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一序列化后传输 图像对象可
JavaIO6—对象的序列化 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 对于对象的序列化可能
知识大全 java序列化--java.io.Serializable接口解析
java序列化--java.io.Serializable接口解析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一
cha138/Article/program/yd/201404/30432
通过XML模板替换实现对象的灵活序列化 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 前阵子在写
序列化实现深克隆 publicstaticObjectdeepClone(Objectsource) ObjectOutputStreamoos=null; ObjectInputStrea