亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

在自行序列化的時,在自行序列化的類中重寫的方法writeObject和readObject方法是怎么被調用的,程序中也沒有用該類對象調用這兩個方法???具體的邏輯是怎樣的呢,是自行就被調用了嗎?

在自行序列化的時,在自行序列化的類中重寫的方法writeObject和readObject方法是怎么被調用的,程序中也沒有用該類對象調用這兩個方法???具體的邏輯是怎樣的呢,是自行就被調用了嗎?

正在回答

5 回答

方法括號里有 java.io.ObjectOutputStream s

0 回復 有任何疑惑可以回復我~
#1

張禹專 提問者

還是不明白 為什么括號里有java.io.ObjectOutputStream s 就可以了 有這個不就是作為一個傳入的參數(對象)? 但是不也得要有對象調用這個方法 方法內的功能不才可以作用嗎,沒有對象調用這兩個方法,那里邊對transient修飾的成員做序列化和反序列化是怎么啟動作用的呢?
2017-10-28 回復 有任何疑惑可以回復我~
#2

64946 回復 張禹專 提問者

這個s不就是ObjectOutputStream對象的實例嗎 ,stuage是int型的,然后在方法體內不是調用了s.WriteInt()進行序列化嗎,上一句是將默認可以序列化的進行序列化,stuage是transient的,所以。。。。
2017-10-29 回復 有任何疑惑可以回復我~
#3

張禹專 提問者 回復 64946

在序列化的時候不是調用 oos(是ObjectOutputStream 類的對象) 對象的 writeObject(stu);方法嗎,然后把 Student 類的對象作為參數傳入,那么在Student類下 重寫的writeObject方法和readObject方法不應該由Student 對象調用 才能達到里邊自行序列化的操作嗎,整體代碼中也沒有 用Student 對象進行調用這兩個方法啊 只是用ObjectOutputStream 對象進行序列化和反序列化 Student對象的操做了 我就是不明白這里 是怎么繞的 就讓Student 類下那兩個重寫的方法起到作用了...
2017-10-31 回復 有任何疑惑可以回復我~
#4

pcshao 回復 張禹專 提問者

我覺得jvm在對象序列化與反序列的過程中會自動執行那些方法,老師也說了這個特殊的方法叫做簽名。有興趣的話可以讀讀JVM原理
2018-04-06 回復 有任何疑惑可以回復我~
#5

MockingjayHunter

答非所問
2018-05-20 回復 有任何疑惑可以回復我~
#6

MockingjayHunter 回復 pcshao

666
2018-05-20 回復 有任何疑惑可以回復我~
查看3條回復

親~答案是沒有問題的哦~您可能對if...elseif...else的邏輯運算沒有看清楚哦~可以仔細閱讀一下我們知識內容部分的講解哦~,,

0 回復 有任何疑惑可以回復我~

隨隨便便就給別人最佳回答?你自己搞懂了?


因為這是規定:

在序列化過程中,如果被序列化的類中定義了writeObject 和 readObject 方法,虛擬機會試圖調用對象類里的 writeObject 和 readObject 方法,進行用戶自定義的序列化和反序列化。

如果沒有這樣的方法,則默認調用是 ObjectOutputStream 的 defaultWriteObject 方法以及 ObjectInputStream 的 defaultReadObject 方法。

用戶自定義的 writeObject 和 readObject 方法可以允許用戶控制序列化的過程,比如可以在序列化的過程中動態改變序列化的數值。


具體看這篇文章:http://www.hollischuang.com/archives/1140


3 回復 有任何疑惑可以回復我~

在序列化的時候不是調用 oos(是ObjectOutputStream 類的對象) 對象的 writeObject(stu);方法嗎,然后把 Student 類的對象作為參數傳入,那么在Student類下 重寫的writeObject方法和readObject方法不應該由Student 對象調用 才能達到里邊自行序列化的操作嗎,整體代碼中也沒有 用Student 對象進行調用這兩個方法啊 ?只是用ObjectOutputStream 對象進行序列化和反序列化 Student對象的操做了 ?我就是不明白這里 ?是怎么繞的 ?就讓Student 類下那兩個重寫的方法起到作用了... 感謝你給與的回答

0 回復 有任何疑惑可以回復我~

同問,我也想知道

1 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

在自行序列化的時,在自行序列化的類中重寫的方法writeObject和readObject方法是怎么被調用的,程序中也沒有用該類對象調用這兩個方法啊?具體的邏輯是怎樣的呢,是自行就被調用了嗎?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號