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)

          隨筆檔案

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 鞍山市| 新巴尔虎右旗| 华安县| 双柏县| 札达县| 洛阳市| 张家口市| 光山县| 大足县| 梧州市| 广灵县| 西乌珠穆沁旗| 黄大仙区| 黎川县| 泰和县| 锡林浩特市| 安阳市| 奉化市| 余姚市| 平山县| 高平市| 乡城县| 崇左市| 上虞市| 和政县| 昌都县| 竹溪县| 永安市| 彩票| 隆回县| 隆化县| 崇仁县| 嘉义市| 依兰县| 雷州市| 灵台县| 富裕县| 白山市| 东兰县| 浏阳市| 三原县|