定义
Serializable接口是启用其序列化功能的接口。实现java.io.Serializable接口的类是可序列化。没有实现此接口的类将不能使他们的任意状态被序列化或逆序列化
序列化便捷理解
序列化过程,就是一个freeze的过程,它将一个对象freeze(冷冻)住,然后进行储存,等到再次需要的时候,再将这个对象de-freeze就可以使用了
Serializable接口是一个空接口
那它的作用是什么呢
作用就是当我们让实体类实现Serializable接口时,其实是告诉JVM此类可被序列化,可被默认的序列化机制序列化
序列化原因:
存储对象在存储介质中,以便下次使用的时候,可以很快建立一个副本。实现了序列化可以便于数据传输,尤其在远程调用的时候
空接口是一个表示接口:
形象比喻:
一个学生遇到一个问题,排错排了几天也没解决,此时,她举手了(示意我去帮他解决),然后我过去,帮他解决了,那么这个举手其实就是一个标识,自己不能解决的问题标示我去帮他解决
在Java中的这个Serializable接口是给JVM看的,告诉JVM,我不做这个类的序列化了,你(JVM)给我序列化,序列化就是变成二进制流,比如云计算、Hadoop,特别是Hadoop完全就是分布式环境,那么就要涉及到对象要在网络中传输,里面的全是二进制流,当然你来做这个序列化操作也可以,但是这个类里面可能还有一个类,如果你把外面的类对象Person变成二进制,那么里面也要序列化(这要用到深度遍历,很麻烦),干脆告诉JVM,让他来帮你做。
seriable接口就是java提供用来高效率的异地共享对象机制,实现这个接口即可