gbk

          java.io.serializable

          接口 java.io.Serializable

          public interface Serializable

          實現 java.io.Serializable 接口的類是可序列化的。沒有實現此接口的類將不能使它們的任一狀態被序列化或逆序列化。序列化類的所有子類本身都是可序列化的。這個序列化接口沒有任何方法和域,僅用于標識序列化的語意。

          允許非序列化類的子類型序列化,子類型可以假定負責保存和恢復父類型的公有的、保護的和(如果可訪問)包的域的狀態。只要該類(擴展)有一個無參構造子, 可初始化它的狀態,那么子類型就可承擔上述職責。在這種情況下申明一個可序列化的類是一個錯誤。此錯誤將在運行時被檢測。

          在逆序列化期間,將使用非序列化類的公用的或保護的無參構造子對它的域進行初始化。可序列化子類必須能訪問父類的無參構造子。它的所有域將從相應流中被恢復。

          當遍歷一個圖象時,很可能遇到一個不支持序列化接口的對象。此時將拋出 NotSerializableException 異常,且標識該非序列化對象類。

          在序列化處理過程中需要特定句柄的類,必須使用如下這些恰當的標記實現特定的方法:

           private void writeObject(java.io.ObjectOutputStream out)
          throws IOException
          private void readObject(java.io.ObjectInputStream in)
          throws IOException, ClassNotFoundException;

          writeObject 方法負責寫特定類的對象的狀態,以至相應的 readObject 方法能恢復它。 通過調用 out.defaultWriteObject 可激活保存對象域的缺省機制。此方法不必關心狀態是屬于它的父類還是子類。 使用 writeObject 方法或基本類型支持的 DataOutput 方法將每個域的狀態保存到 ObjectOutputStream 中。

          readObject 方法負責從此流中讀取并恢復類的域。它可能調用 in.defaultReadObject 方法來調用該對象的非靜態和非暫時的域的缺省恢復機制。 defaultReadObject 方法使用該流中的信息,用當前對象中的已命名域分配保存在流中該對象的相應域。當類已改進增加了新域時,這個接口也做相應處理。此方法不必關心狀態是屬于它的父類還是子類。 使用 writeObject 方法或基本類型支持的 DataOutput 方法將每個域的狀態保存到 ObjectOutputStream 中。

          posted on 2007-11-04 12:21 百科 閱讀(236) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          My Links

          Blog Stats

          常用鏈接

          留言簿(2)

          隨筆檔案

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 上饶县| 丹寨县| 大厂| 巴林右旗| 望都县| 兴文县| 塔河县| 永城市| 额尔古纳市| 砚山县| 蓝田县| 子长县| 甘孜县| 孟州市| 宝鸡市| 乐都县| 德惠市| 容城县| 彰化市| 大渡口区| 安康市| 自贡市| 建昌县| 庄河市| 香港| 江油市| 沁阳市| 尼勒克县| 两当县| 大洼县| 芮城县| 石家庄市| 黄龙县| 铅山县| 理塘县| 贵德县| 南投县| 板桥市| 庄浪县| 吉木萨尔县| 东至县|