定义java实体类时为什么继承Serializable接口
首先我们要明确到底什么是Serializable接口:一个对象序列化的接口,一个类只有实现了Serializable接口,他的对象才能够被序列化
那么什么是序列化?序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。
为什么要序列化对象:1、把对象转换为字节序列的过程称为对象的序列化2、把字节序列恢复为对象的过程称为对象的反序列化
什么情况下需要序列化:当我们需要把对象的状态信息通过网络进行传输,或者需要将对象的状态信息持久化,以便将来使用时都需要把对象进行序列化。
为什么要继承Serialilzable。因为存储对象在存储介质中,以便在下次使用的时候,可以很快捷的重建一个副本。我们日常将数据存储在mysq等数据库中,为什么非要序列化才能存储?因为Serializable接口实际上就是一个标识的接口。在java中起到传递信息给jvm的,通知jvm,这个类我就不做序列化了,由jvm来帮我序列化Serializable接口就是java提供用来进行高效率的异地共享实例对象的机制,实现这个接口即可。
序列化和反序列化的操作过程十分简单。只需要将实体类写入到文件中,然后从文件中进行恢复,恢复后得到的内容和之前完全一样。其中有一个起到很大作用的变量叫做SerialVersionUID。这个serialVersionUID的详细的工作机制是:在序列化的时候系统将serialVersionUID写入到序列化的文件中去,当反序列化的时候系统会先去检测文件中的serialVersionUID是否跟当前的文件的serialVersionUID是否一致,如果一直则反序列化成功,否则就说明当前类跟序列化后的类发生了变化,比如是成员变量的数量或者是类型发生了变化,那么在反序列化时就会发生crash,并且回报出错误。
标签:实体类,对象,接口,序列化,事儿,Serializable,serialVersionUID From: https://www.cnblogs.com/lyz1324/p/16904873.html