天天看點

最全的磁力鍊搜尋引擎,國内外最受歡迎的BT-磁力網站(整理分享,每日不斷更新...)

磁力搜尋網站 bt torrent search engine 推薦 每日更新  2021-08-01 更新

磁力巴士   WWW.EYH.BIZ   writeObject()中的第一個操作;并調用 defaultReadObject(),令其作為 readObject()的第一個操作。這些 都是不常見的調用方法。舉個例子來說,當我們為一個 ObjectOutputStream 調用 defaultWriteObject()的 時候,而且沒有為其傳遞參數,就需要采取這種操作,使其知道對象的句柄以及如何寫入所有非 transient 的部分。這種做法非常不便。

transient 對象的存儲與恢複采用了我們更熟悉的代碼。現在考慮一下會發生一些什麼事情。在 main()中會 建立一個 SerialCtl 對象,随後會序列化到一個 ObjectOutputStream 裡(注意這種情況下使用的是一個緩沖 區,而非檔案——與 ObjectOutputStream 完全一緻)。正式的序列化操作是在下面這行代碼裡發生的: o.writeObject(sc);

其中,writeObject()方法必須核查 sc,判斷它是否有自己的 writeObject()方法(不是檢查它的接口——它

根本就沒有,也不是檢查類的類型,而是利用反射方法實際搜尋方法)。若答案是肯定的,就使用那個方 法。類似的情況也會在 readObject()上發生。或許這是解決問題唯一實際的方法,但确實顯得有些古怪。

版本問題 有時候可能想改變一個可序列化的類的版本(比如原始類的對象可能儲存在資料庫中)。盡管這種做法得到 了支援,但一般隻應在非常特殊的情況下才用它。此外,它要求操作者對背後的原理有一個比較深的認識, 而我們在這裡還不想達到這種深度。JDK 1.1 的 HTML 文檔對這一主題進行了非常全面的論述(可從 Sun 公司 下載下傳,但可能也成了 Java 開發包聯機文檔的一部分)。

10.9.3 利用“持久性” 一個比較誘人的想法是用序列化技術儲存程式的一些狀态資訊,進而将程式友善地恢複到以前的狀态。但在 具體實作以前,有些問題是必須解決的。如果兩個對象都有指向第三個對象的句柄,該如何對這兩個對象序

列化呢?如果從兩個對象序列化後的狀态恢複它們,第三個對象的句柄隻會出現在一個對象身上嗎?如果将 這兩個對象序列化成獨立的檔案,然後在代碼的不同部分重新裝配它們,又會得到什麼結果呢?