日期:2014-05-20  浏览次数:20619 次

接口通常都是要由实现类重写方法中的所有方法,那么序列化接口是怎样进行的呢?
一个类如果,实现了序列化接口,就可以进行序列化操作,而这个类里面并没有实现序列化接口的方法,这里面的机制是怎样的呢?
我私下里认为是JVM主动承担了这个工作,
能否请达人高屋建瓴的指导下?


------解决方案--------------------

------解决方案--------------------
首先 Serializable 接口,没有任何方法,只是一个空接口。

若要让某一个类能用于序列化操作,就必须实现该接口,这一接口可以理解为是一个标记,告诉 JVM 这个类是可以被序列化的。
------解决方案--------------------
如果您问的是这个接口java.io.Serializable的用处,而不是串行化本身的用处的话,请继续读:

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

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

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

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

------------------

其实就是告诉jvm该类的实例可以安全串行化
------解决方案--------------------
jf,
序列化后分配一个final的串
------解决方案--------------------
在java中,有的接口是标识接口,不需要需要实现任何方法,Serializable 就是其中之一,还有RandomAccess