zoukankan      html  css  js  c++  java
  • 对象流--对象的序列化

    1、对象是存在于内存中的(堆内存),有时候我们需要将对象保存在硬盘上,又有时我们需要将对象保存在另一台计算机上等等这样的操作,

          这时候我们需要将对象转化为一个字节序列,而这个过程就是对象的序列化,相反我么又这样一个字节序列需要将其转化为对应的对象,

          这个过程就是对象的反序列化。

    2、对象-----序列化---字节序列

         字节序列---反序列化---对象

    3、使用OOS实现对象的序列化------ObjectOutputStream是用来对对象进行序列化的输出流,

          其实现对象序列化的方法为:  -void  writeObject(Object  o)

          该方法可以将给定的对象转化为一个字节序列后写出,

    4、使用 OIS实现对象的反序列化---ObjectInputStream是用来对对象进行反序列化的输入流,

         其实现对象反序列化打方法为: -Object  readObject()

         该方法 可以从流中读取字节并转化为对象

    5、Serialiable接口

          ObjectOutputSream在对对象进行序列化时有一个要求,就是需要序列化的对象所属的类必须实现Serialiable接口,

          实现该接口不需要实现任何方法,其只是作为可序列化的标志,

          通常实现该接口的类,需要提供一个常量serialVersionUid,表名该类的版本,若不显示的声明,在对象序列化时也会根据当前类的各个方面计算该类的默认serialVersionUid,

          但不同平台编译器实现有所不同,所以如果想跨平台,都应有显示的声明版本号。

    6、Serialiable接口

          如果声明的类的对象序列化存到硬盘上面,之后随着需求的变化更改了类的属性(增加或减少或更改)呢么反序列化时就会出现InvalidClassException,这样就会造成不兼

         容问题,但当serialVersionUid相同时,它就会将不一样的field以type的预设值反序列化,可避免不兼容问题。

         

          

          

  • 相关阅读:
    我的WCF之旅(1):创建一个简单的WCF程序
    网页设计中颜色的搭配
    CSS HACK:全面兼容IE6/IE7/IE8/FF的CSS HACK
    UVa 1326 Jurassic Remains
    UVa 10340 All in All
    UVa 673 Parentheses Balance
    UVa 442 Matrix Chain Multiplication
    UVa 10970 Big Chocolate
    UVa 679 Dropping Balls
    UVa 133 The Dole Queue
  • 原文地址:https://www.cnblogs.com/sunfenqing/p/7481736.html
Copyright © 2011-2022 走看看