当前位置:  技术问答>java相关

Serializable 的作用?

    来源: 互联网  发布时间:2015-11-20

    本文导语:  Serializable 在实际应用用处? | 如果您问的是这个接口java.io.Serializable的用处,而不是串行化本身的用处的话,请继续读: java.io.Serializable是一个空接口,也就是说这个接口没有声明任何的方...

Serializable 在实际应用用处?

|
如果您问的是这个接口java.io.Serializable的用处,而不是串行化本身的用处的话,请继续读:

java.io.Serializable是一个空接口,也就是说这个接口没有声明任何的方法,所以实现这个接口的类也就不需要实现任何的方法。

那么这个接口还有什么用处呢?

这个接口使得所有的实现它的类具有一个特殊的(mixin)类型,从而使JVM知道这个类可以安全地串行化。

这种没有声明任何方法的接口,叫做标示接口(marker interface)。标示接口是一种设计模式,感兴趣的读者可以参见我的书《Java与模式》



阎宏博士,写于纽约
《Java与模式》作者
电子信箱:javapatterns@yahoo.com
个人网站http://www.WebEndsHere.com 
或者http://218.6.168.109/jeffyan77/(中国临时使用))
或者http://webendshere.nstemp.com(美国临时使用)

个人作品集http://www.yesky.com/20011108/203866.shtml 

买书请到:
http://www.china-pub.com/computers/common/info.asp?id=8182
http://www.huachu.com.cn/itbook/itbookinfo.asp?lbbh=BB07630282
http://www.cnforyou.com/query/bookdetail.asp?viBookCode=7638

|
网络传输数据,文件存盘读取时会用到的

|
对象序列化接口,远程传输对象,或以文件行式进行保存。

|
串行化后在网络传输,就像你读/写一个文件流一样。

|
序列化,,可以将一个对象以字节的形式存储在磁盘中或者在网络上传输,当从磁盘或网络中得到数据时可以恢复成原来的对象。

|
在分布式计算中的应用很大,尤其是RPC(在JAVA中多是RMI)

|
它只是一个标志!!
  ,表示实现其接口的类的实例可以序列化.

|
序列化 用在 对象编码成字节流及从字节流编码重构对象。
序列化 为远程通信提供了标准的wire-level协议。
要使类的实例实现序列化,只要在它的声明中加入implements 

java.io.Serializable
但是却由一些隐患
1 实现了序列化后,一旦发布,讲削弱改变类实现的灵活性。
2 增加了bug和安全漏洞的的可能性
3 当你的新版本发布时增加了相关的测试上的问题。

类应尽可能少的实现Serializable,接口也应该少去扩展它。

|
大家说的都很对,它(serializable)主要支持对象的回复,所以可以用来保存当前的程序系统状态,远程方法调用RMI(远程机器必须含有必要的.class文件,否则将掷出classNotFound Exception),但是因为它将对象数据自动全部保存,你根本无法插手,因此对于一些敏感字段(如:password)存在安全问题。但相应有很多解决的方法,例如可以在敏感字段的声明中使用transient关键字,或者去继承externalizable接口,自己来实现readExternal()和writerExternal()方法,再或者继承serializable接口,但提供private void writeObject(ObjectOutputStream s)等方法... ...但注意static 成员的保存仍需要你的介入。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.io接口objectstreamconstants的类成员方法: sc_serializable定义及介绍
  • java.io.Serializable的问题
  • java命名空间java.beans.beancontext类beancontextservicessupport的类成员方法: serializable定义及介绍
  • javabeans必须实现serializable接口吗?
  • java命名空间java.sql接口connection的类成员方法: transaction_serializable定义及介绍
  • 好多地方都要实现Serializable,有什么意义!
  • java序列化实现Serializable接口
  • Serializable和Synchronization在java中干什么用的?来者有分
  • 请问SCJP要考Object Stream/Serializable Interface/Sockets吗?急急急
  • 谁知道Bean中的序列化(implements Serializable)的用处,及如何用?
  • Serializable?使用和意思?在thinking in java里面看了半天一天也没有明白什么意思!谢谢高手大虾了
  • Socket中使用Serializable发送出错。
  • 用Serializable实现的对象可以用流的形式存储在磁盘上,可再生,以后可以再取出来,请教!!!送分!!!
  • java 序列化对象 serializable 读写数据的实例
  • 如何让一个Vector类型serializable?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3