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

解决方案 »

  1.   

    首先 Serializable 接口,没有任何方法,只是一个空接口。若要让某一个类能用于序列化操作,就必须实现该接口,这一接口可以理解为是一个标记,告诉 JVM 这个类是可以被序列化的。
      

  2.   

    如果您问的是这个接口java.io.Serializable的用处,而不是串行化本身的用处的话,请继续读:  
       
      java.io.Serializable是一个空接口,也就是说这个接口没有声明任何的方法,所以实现这个接口的类也就不需要实现任何的方法。  
       
      那么这个接口还有什么用处呢?  
       
      这个接口使得所有的实现它的类具有一个特殊的(mixin)类型,从而使JVM知道这个类可以安全地串行化。  
       
      这种没有声明任何方法的接口,叫做标示接口(er   interface)。标示接口是一种设计模式,感兴趣的读者可以参见《Java与模式》   ------------------其实就是告诉jvm该类的实例可以安全串行化
      

  3.   

    jf,
    序列化后分配一个final的串
      

  4.   

    在java中,有的接口是标识接口,不需要需要实现任何方法,Serializable 就是其中之一,还有RandomAccess