知识大全 关于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对象序列化与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