• <output id="aynwq"><form id="aynwq"><code id="aynwq"></code></form></output>

    <mark id="aynwq"><option id="aynwq"></option></mark>
  • <mark id="aynwq"><option id="aynwq"></option></mark><label id="aynwq"><dl id="aynwq"></dl></label>
  • 學習啦 > 知識大全 > 知識百科 > 百科知識 > java中序列化是什么

    java中序列化是什么

    時間: 歐東艷656 分享

    java中序列化是什么

      簡單來說序列化就是一 種用來處理對象流的機制,所謂對象流也就是將對象的內容進行流化,流的概念這里不用多說(就是I/O),我們可以對流化后的對象進行讀寫操作,也可將流化 后的對象傳輸于網絡之間(注:要想將對象傳輸于網絡必須進行流化)!在對對象流進行讀寫操作時會引發一些問題,而序列化機制正是用來解決這些問題的!

      如 上所述,讀寫對象會有什么問題呢?比如:我要將對象寫入一個磁盤文件而后再將其讀出來會有什么問題嗎?別急,其中一個最大的問題就是對象引用!舉個例子來 說:假如我有兩個類,分別是A和B,B類中含有一個指向A類對象的引用,現在我們對兩個類進行實例化{ A a = new A(); B b = new B(); },這時在內存中實際上分配了兩個空間,一個存儲對象a,一個存儲對象b,接下來我們想將它們寫入到磁盤的一個文件中去,就在寫入文件時出現了問題!因為 對象b包含對對象a的引用,所以系統會自動的將a的數據復制一份到b中,這樣的話當我們從文件中恢復對象時(也就是重新加載到內存中)時,內存分配了三個 空間,而對象a同時在內存中存在兩份,想一想后果吧,如果我想修改對象a的數據的話,那不是還要搜索它的每一份拷貝來達到對象數據的一致性,這不是我們所 希望的!

      以下序列化機制的解決方案:

      1.保存到磁盤的所有對象都獲得一個序列號(1, 2, 3等等)

      2.當要保存一個對象時,先檢查該對象是否被保存了。

      3.如果以前保存過,只需寫入"與已經保存的具有序列號x的對象相同"的標記,否則,保存該對象

      通過以上的步驟序列化機制解決了對象引用的問題!

      序列化的實現

      將需要被序列化的類實現Serializable接口,該接口沒有需要實現的方法,implements Serializable只是為了標注該對象是可被序列化的,然后使用一個輸出流(如:FileOutputStream)來構造一個 ObjectOutputStream(對象流)對象,接著,使用ObjectOutputStream對象的writeObject(Object obj)方法就可以將參數為obj的對象寫出(即保存其狀態),要恢復的話則用輸入流。

      修改默認的序列化機制

      在序列化的過程中,有些數據字段我們不想將其序列化,對于此類字段我們只需要在定義時給它加上transient關鍵字即可,對于 transient字段序列化機制會跳過不會將其寫入文件,當然也不可被恢復。但有時我們想將某一字段序列化,但它在SDK中的定義卻是不可序列化的類 型,這樣的話我們也必須把他標注為transient,可是不能寫入又怎么恢復呢?好在序列化機制為包含這種特殊問題的類提供了如下的方法定義:

      private void readObject(ObjectInputStream in) throws

      IOException, ClassNotFoundException;

      private void writeObject(ObjectOutputStream out) throws

      IOException;

      (注:這些方法定義時必須是私有的,因為不需要你顯示調用,序列化機制會自動調用的)

      使用以上方法我們可以手動對那些你又想序列化又不可以被序列化的數據字段進行寫出和讀入操作。

    246214 主站蜘蛛池模板: mm131美女爱做视频在线看| 亚洲欧美日韩电影| 一级毛片直播亚洲| 色一情一乱一伦一视频免费看| 日韩有码在线观看| 国产婷婷色综合av蜜臀av| 久久精品国产亚洲av电影网 | 草莓视频在线观看黄| 日本精高清区一| 国产人妖在线播放| 久久久久波多野结衣高潮| 草莓视频成人在线观看| 扁豆传媒网站免费进入| 又粗又长又爽又大硬又黄| 一级做a爱片久久蜜桃| 精品一区二区三区四区电影| 天天做天天躁天天躁| 亚洲武侠欧美自拍校园| 2022天天躁夜夜躁西| 欧美亚洲一区二区三区| 国产成人精品免费午夜app| 久久影院最新消息| 老师的胸又大又软真好吃| 成人中文精品3d动漫在线| 免费va人成视频网站全| 91福利电影福利在线观看 | 巨大挺进湿润黑人粗大视频| 免费福利在线视频| 97人人添人澡人人爽超碰| 欧美成人免费一区二区| 国产成人精品综合在线| 久久久国产99久久国产久| 综合人妻久久一区二区精品 | 久久久久久亚洲精品中文字幕| 羞羞漫画成人在线| 女m羞辱调教视频网站| 亚洲成人www| 黄色片子在线观看| 成人毛片无码一区二区三区| 人妻av无码一区二区三区| 手机在线看片国产日韩生活片|