• 技术文章 >常见问题

    serializable接口的作用是什么

    coldplay.xixicoldplay.xixi2021-02-22 14:33:42原创8762

    serializable接口的作用:1、存储对象在存储介质中,以便在下次使用的时候,可以很快捷的重建一个副本;2、便于数据传输,尤其是在远程调用的时候。

    本文操作环境:Windows7系统,Dell G3电脑。

    serializable接口的作用:

    Serializable接口是启用其序列化功能的接口。实现java.io.Serializable 接口的类是可序列化的。没有实现此接口的类将不能使它们的任意状态被序列化或逆序列化。

    个人理解:

    这个介绍非常的不接地气,于是我与去看了几篇博客,有一个小姐姐的博客引起了我的注意,她是这样理解的:

    序列化的过程,就是一个“freeze”的过程,它将一个对象freeze(冷冻)住,然后进行存储,等到再次需要的时候,再将这个对象de-freeze就可以立即使用。

    我们以为的没有进行序列化,其实是在声明的各个不同变量的时候,由具体的数据类型帮助我们实现了序列化操作。

    如果有人打开过Serializable接口的源码,就会发现,这个接口其实是个空接口,那么这个序列化操作,到底是由谁去实现了呢?其实,看一下接口的注释说明就知道,当我们让实体类实现Serializable接口时,其实是在告诉JVM此类可被序列化,可被默认的序列化机制序列化。

    序列化的作用:

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

    1,存储对象在存储介质中,以便在下次使用的时候,可以很快捷的重建一个副本。也就是When the resulting series of bits is reread according to the serialization format, it can be used to create a semantically identical clone of the original object.

    问题:我没有实现序列化的时候,我一样可以存入到我的sqlserver或者MySQL、Oracle数据库中啊,为什么一定要序列化才能存储呢????

    2,便于数据传输,尤其是在远程调用的时候

    实现java.io.Serializable这个接口是为序列化,serialVersionUID 用来表明实现序列化类的不同版本间的兼容性。如果你修改了此类, 要修改此值。

    否则以前用老版本的类序列化的类恢复时会出错。

    实现后如果你用的是工具的话会出来警告,他会提示你,可以自动生成private static final long serialVersionUID = 1L; 为了在反序列化时,确保类版本的兼容性,最好在每个要序列化的类中加入private static final long serialVersionUID这个属性,具体数值自己定义. 

    关于serialVersionUID的解释

    serialVersionUID作用: 序列化时为了保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性。

    你可以随便写一个,在Eclipse中它替你生成一个,有两种生成方式: 一个是默认的1L,比如:

    private static final long serialVersionUID = 1L;

    一个是根据类名、接口名、成员方法及属性等来生成一个64位的哈希字段,比如:

    private static final long serialVersionUID = -8940196742313994740L;

    相关免费学习推荐:编程视频

    以上就是serializable接口的作用是什么的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:serializable
    上一篇:电脑系统有哪些 下一篇:网络词null什么意思

    相关文章推荐

    • Java序列化之Serializable• php—Serializable接口• PHP之Serializable序列表接口详解• 关于PHP自定义序列化接口Serializable的用法分析• java中如何使用Serializable接口实现序列化

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网