Java自定义序列化行为解析

来源:java认证发布时间:2012-11-12 13:15:35java认证视频

    正常情况下,一个类实现java序列化很简单,只需要implements Serializable接口即可,之后该类在跨jvm 的传输过程中会遵照默认java序列化规则序列化和反序列化;不同jvm 版本之间序列化方式稍有不同,但基本上都是兼容的。在某些特殊情况下,可能需要自定义序列化和反序列化的行为,看下面例子:
    Java代码
    class AbstractSerializeDemo {
    private int x , y;
    public void init(int x , int y) {
    this.x = x;
    this.y = y;
    }
    public int getX () {
    return x;
    }
    public int getY () {
    return y;
    }
    public void printXY () {
    System.out.println("x:" + x + " ;y :" + y );
    }
    }
    public class SerializeDemo extends AbstractSerializeDemo implements
    Serializable {
    private int z ;
    public SerializeDemo() {
    super.init(10, 50 );
    z = 100 ;
    }
    public void printZ() {
    super.printXY ();
    System.out.println("z:" + z );
    }
    public static void main (String[] args ) throws IOException , ClassNotFoundException
    {
    ByteArrayOutputStream bos = new ByteArrayOutputStream ();
    ObjectOutputStream out = new ObjectOutputStream (bos );
    SerializeDemo sd = new SerializeDemo();
    sd.printZ ();
    out.writeObject (sd);
    ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream
    (bos.toByteArray ()));
    SerializeDemo sd2 = (SerializeDemo ) in.readObject();
    sd2.printZ();
    }
    }

上一页12下一页

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答