Serializable:writeObject/readObject有的限制?

原创 2015年07月08日 13:17:56

writeObject/readObject的实现有没有什么限制?答案是语法层面没有任何限制。

比如说如下面这样:

private void writeObject(ObjectOutputStream out) throws IOException
{
    System.out.println("这里的方法吧?");
}

private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException
{
    System.out.println("确实是调用这里的方法!");
}

测试程序:

public void testOut() throws FileNotFoundException, IOException {
        PeopleName luren01 = new PeopleName("james","de","bang");
        ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("D:\\temp.txt"));
        out.writeObject(luren01);
        out.flush();
        out.close();
    }
    @Test
    public void testIn() throws FileNotFoundException, IOException, ClassNotFoundException {
        ObjectInputStream in = new ObjectInputStream(new FileInputStream("D:\\temp.txt"));
        in.readObject();
        in.close();

    }

结果这两个writeObject/readObject并没有语法错误,在序列化、反序列化过程中依然被调用了,只是它并没有实际的完成序列化和反序列化的工作。
序列化框架只是实现了会回调序列化对象的writeObject/readObject方法,但是对方法的实现其实并没有限制。
正常功能的的writeObject/readObject虽然从技术角度而言,不调用defaultWriteObject/defaultReadObject是合法的,但是不推荐这样做。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

什么是writeObject 和readObject?可定制的序列化过程(转)

(对象序列化与反序列化、transient关键字) 这篇文章很直接,简单易懂。尝试着翻译一下 ,原文是What are writeObject and readObject? Customizing...

IO流 ObjectInputStream ObjectOutputStream Serializable writeObject(t) transient

Serializable叫做可以被序列化的,如果确实想把类的对象写到硬盘上,或者写到网络上,即想把它序列化为字节流,必须得实现这个接口,实现这个接口没有重写接口的方法,因为她没有定义方法,就定义了一个...

解决循环操作ObjectInputStream的readObject()方法的EOF异常

// 读入文件 FileInputStream reader = new FileInputStream("accout.txt"); ObjectInputStream bbr = new ...

反序列化ObjectOutputStream.readObject()出现ClassNotFoundException

跨进程通信时,将序列化的对象的对象存入文件,两个进程通过读/写同一个文件来交换数据,达到通讯的效果。 中间遇到一个问题,就是在另一个进程反序列化的时候,报ClassNotFoundException...

flex socket.writeObject()发送对象,java接收flex socket发送过来的对象

参考文章: http://www.cnblogs.com/pelephone/archive/2012/04/03/java-as3-amf-vo.html    //java与as3,amf交互相互...

Serializable序列化

  • 2014-04-27 21:57
  • 26KB
  • 下载

java的Serializable 序列化简析

1.概念:把对象转换为字节序列的过程称为对象的序列化。把字节序列恢复为对象的过程称为对象的反序列化。2.作用: 把对象保存到从内存保存到硬盘 在网络上传输对象的序列化,在使用时再把反序列化翻译成对象 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)