关于序列化的使用

 

 1、为什么使用序列化Serializable

实现了Serializable接口的对象,可将它们转换成一系列字节,并可在以后完全恢复回原来的样子。这一过程亦可通过网络进行。这意味着序列化机制能自动补偿操作系统间的差异。换句话说,可以先在Windows机器上创建一个对象,对其序列化,然后通过网络发给一台Unix机器,然后在那里准确无误地重新“装配”。不必关心数据在不同机器上如何表示,也不必关心字节的顺序或者其他任何细节。

 serialization主要用来支持2种主要的特性:
    1、RMI(Remote method invocation)。RMI允许象在本机上一样操作远程机器上的对象。当发送消息给远程对象和调用远程方法时,就需要用到serializaiton机制来发送参数和接收返回值。 
    2、保存信息。在某个时候把状态信息保存起来,以便以后某个时候能恢复这些状态信息。
    Hibernaet和EJB中的实体Bean就用到了上面两个特性。


    另外:保存的时候不仅能保存对象的副本,而且还会把对象里面所引用的对象也保存起来,以此类推。就像在编译某个类一样,会涉及到所用到的所有类。但是所引用的对象也必须是可序列化的,不然会抛NotSerializableException异常。

2、什么情况下需要序列化   
    a)当你想把的内存中的对象状态保存到一个文件中或者数据库中时候;
    b)当你想用套接字在网络上传送对象的时候;
    c)当你想通过RMI传输对象的时候;

源博客地址:http://www.blogjava.net/woxingwosu/archive/2007/07/12/129511.htmlhttp://www.iteye.com/topic/121311

谢谢!尺有所短,寸有所长博主 ,xiebh作者

posted on 2011-11-18 21:33  冲锋的路上的兵  阅读(207)  评论(0编辑  收藏  举报