一個(gè)類(lèi)實(shí)現(xiàn)序列號(hào)的接口,這個(gè)私有化的readobject writeobject 方法 我還是不懂 他們到底怎么被調(diào)用的
一個(gè)類(lèi)實(shí)現(xiàn)序列號(hào)的接口,這個(gè)私有化的readobject writeobject 方法 我還是不懂 他們到底怎么被調(diào)用的
一個(gè)類(lèi)實(shí)現(xiàn)序列號(hào)的接口,這個(gè)私有化的readobject writeobject 方法 我還是不懂 他們到底怎么被調(diào)用的
2016-05-19
舉報(bào)
2016-05-21
在序列化過(guò)程中,如果被序列化的類(lèi)中定義了writeObject 和 readObject 方法,虛擬機(jī)會(huì)試圖調(diào)用對(duì)象類(lèi)里的 writeObject 和 readObject 方法,進(jìn)行用戶(hù)自定義的序列化和反序列化。
如果沒(méi)有這樣的方法,則默認(rèn)調(diào)用是 ObjectOutputStream 的 defaultWriteObject 方法以及 ObjectInputStream 的 defaultReadObject 方法。
用戶(hù)自定義的 writeObject 和 readObject 方法可以允許用戶(hù)控制序列化的過(guò)程,比如可以在序列化的過(guò)程中動(dòng)態(tài)改變序列化的數(shù)值。參考鏈接:http://www.hollischuang.com/archives/1140
2016-05-20
如果需要序列化的類(lèi)不僅實(shí)現(xiàn)了Serializable接口,而且定義了readObject(ObjectInputStream in)和 writeObject(ObjectOutputStream out)方法,那么將按照如下的方式進(jìn)行序列化和反序列化:ObjectOutputStream會(huì)調(diào)用這個(gè)類(lèi)的writeObject方法進(jìn)行序列化,ObjectInputStream會(huì)調(diào)用相應(yīng)的readObject方法進(jìn)行反序列化。