网络传输需要做到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{
默认方法
}
}
}