定义java实体类时为什么继承Serializable接口

  首先我们要明确到底什么是Serializable接口:一个对象序列化的接口,一个类只有实现了Serializable接口,他的对象才能够被序列化

  那么什么是序列化?序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。

  为什么要序列化对象:1、把对象转换为字节序列的过程称为对象的序列化2、把字节序列恢复为对象的过程称为对象的反序列化

  什么情况下需要序列化:当我们需要把对象的状态信息通过网络进行传输,或者需要将对象的状态信息持久化,以便将来使用时都需要把对象进行序列化。

  为什么要继承Serialilzable。因为存储对象在存储介质中,以便在下次使用的时候,可以很快捷的重建一个副本。我们日常将数据存储在mysq等数据库中,为什么非要序列化才能存储?因为Serializable接口实际上就是一个标识的接口。在java中起到传递信息给jvm的,通知jvm,这个类我就不做序列化了,由jvm来帮我序列化Serializable接口就是java提供用来进行高效率的异地共享实例对象的机制,实现这个接口即可。

  序列化和反序列化的操作过程十分简单。只需要将实体类写入到文件中,然后从文件中进行恢复,恢复后得到的内容和之前完全一样。其中有一个起到很大作用的变量叫做SerialVersionUID。这个serialVersionUID的详细的工作机制是:在序列化的时候系统将serialVersionUID写入到序列化的文件中去,当反序列化的时候系统会先去检测文件中的serialVersionUID是否跟当前的文件的serialVersionUID是否一致,如果一直则反序列化成功,否则就说明当前类跟序列化后的类发生了变化,比如是成员变量的数量或者是类型发生了变化,那么在反序列化时就会发生crash,并且回报出错误。

原文地址:http://www.cnblogs.com/lyz1324/p/16904873.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性