Serializable 相关知识

xiaoxiao2026-06-20  19

标记接口,主要是网络传输的,在多个 jvm 中的传输 vo 的必须实行该接口

网络传输需要做到serialization and deserialization

serialization

默认是out.defaultWriteObject

defaultWriteObject(){             //默认传输方法

   ...

   if(hasWriteReplaceMethod()){    //object有WriteReplace方法

      writeReplace()

   }else{

        if(isExternalizable()){    //object实现Externalizable接口

            writeExternal(ObjectOutput out)

        }else{

            if(hasWriteObjectMethod()){  //object有WriteObject方法

                writeObject(java.io.ObjectOutputStream out)

            }else{

                ...

            }

        }

   }

}

 deserialization

默认是in.defaultReadObject

defaultReadObject(){

...

if(isExternalizable()){

     readExternal(ObjectInput in)

}else{

   if(hasReadObjectMethod()){

       readObject(java.io.ObjectInputStream in)

   }else{

       默认的方法

   }

   if(hasReadResolveMethod()){

      readResolve()

   }else{

      默认方法

   }

}

}

 

转载请注明原文地址: https://www.6miu.com/read-5050501.html

最新回复(0)