序列化 (serialization)

<p><span style="font-size: 14px;">&nbsp;序列化是將對象狀態轉換爲可保持或傳輸的格式的過程。與序列化相對的是反序列化,它將流轉換爲對象。這兩個過程結合起來,能夠輕鬆地存儲和傳輸數據。<br/>序列化的目的  <br/>一、以某種存儲形式使自定義對象持久化;  <br/>二、將對象從一個地方傳遞到另外一個地方。  <br/>三、使程序更具維護性<br/>----------------------------------------------------------------------------------------------------------------<br/>將對象的狀態信息轉換爲能夠存儲或傳輸的形式的過程。在序列化期間,對象將其當前狀態寫入到臨時或持久性存儲區。之後,能夠經過從存儲區中讀取或反序列化對象的狀態,從新建立該對象。<br/>  序列化使其餘代碼能夠查看或修改那些不序列化便沒法訪問的對象實例數據。確切地說,代碼執行序列化須要特殊的權限:即指定了 SerializationFormatter 標誌的 SecurityPermission。在默認策略下,經過 Internet 下載的代碼或 Intranet 代碼不會授予該權限;只有本地計算機上的代碼才被授予該權限。<br/>  一般,對象實例的全部字段都會被序列化,這意味着數據會被表示爲實例的序列化數據。這樣,可以解釋該格式的代碼有可能可以肯定這些數據的值,而不依賴於該成員的可訪問性。相似地,反序列化從序列化的表示形式中提取數據,並直接設置對象狀態,這也與可訪問性規則無關。<br/>  對於任何可能包含重要的安全性數據的對象,若是可能,應該使該對象不可序列化。若是它必須爲可序列化的,請嘗試生成特定字段來保存不可序列化的重要數據。若是沒法實現這一點,則應注意該數據會被公開給任何擁有序列化權限的代碼,並確保不讓任何惡意代碼得到該權限。<br/>-----------------------------------------------------------------------------------------------------------------<br/>在JAVA編程中:<br/><br/><br/>就是保存,讀取。<br/>*****************************<br/>序列化將信息保存起來,反序列化讀取已保存的信息,<br/>就像你的QQ登陸時的密碼,記住密碼就是一個序列化的功能。<br/><br/><br/>------------------------------------------------------------------------------------------------------------------------------------------<br/><br/><br/>一個形象的例子:http://www.cnblogs.com/wsmall/archive/2008/03/18/1110779.html<br/><br/><br/>都玩過遊戲麼?應該知道遊戲有一個存檔的功能,我每次不想玩得時候就能夠存檔,而後再玩得時候咱們根本不須要從新開始玩(要是每次都從新玩,估計就沒有什麼人能有足夠的耐心玩遊戲了),只須要讀檔就能夠了。咱們如今學習的事面向對象的思想,那麼在咱們眼中不論是咱們的遊戲角色仍是遊戲中的怪物、裝備等等均可以當作是一個個的對象,進行簡單的分析。 <br/><br/>角色對象(包含等級、性別、經驗值、HP、MP等等屬性) <br/><br/>武器對象(包含武器的類型、武器的傷害、武器附加的能力值等等屬性) <br/><br/>怪物對象(包含等級、經驗值、攻擊、怪物類型等等) <br/><br/>因而玩遊戲過程變的很是有意思了,建立遊戲角色就好像是建立了一個角色對象,拿到武器就好像建立了一個武器對象,遇到的怪物、NPC等等都是對象了。 <br/><br/>而後再用學過的知識進行分析,咱們發現對象的數據都是保存在內存中的,應該都知道內存的數據在斷電之後是會消失的,可是咱們的遊戲通過存檔之後,就算你關機了幾天,再進入遊戲的時候,讀取你的存檔發現你在遊戲中的一切都還在呢,奇怪了,明明內存中的數據已經沒有了啊,這是爲何呢?因而再仔細考慮,電腦中有硬盤這個東西在斷電之後保存的數據是不會丟的(要是因爲斷電致使的硬盤損壞了,沒有數據了,哈哈,不在此考慮中)。那麼應該很容易的想到這些數據是被保存在硬盤中了。沒錯!這就是對象的持久化,也就是咱們今天要講的對象的序列化。那麼反序列化就很好理解了就是將存放在硬盤中的信息再讀取出來造成對象。 <br/><br/>序列化/反序列化的概念: <br/><br/>序列化是指將對象實例的狀態存儲到存儲媒體的過程 <br/><br/>反序列化是指將存儲在存儲媒體中的對象狀態裝換成對象的過程 <br/><br/></span></p>html

相關文章
相關標籤/搜索