什麼是序列化?在什麼情況下將類序列化?

2021-07-09 22:53:25 字數 711 閱讀 2385

序列化是一種用來處理物件流的機制,所謂物件流即是將物件的內容進行流化。可以對流化後的物件進行讀寫操作,也可將流化後的物件傳輸於網路之間。序列化是為了解決在對物件流進行讀寫操作時所引發的問題。

問題的引出:

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

1.儲存到磁碟的所有物件都獲得乙個序列號(1, 2, 3等等)

2.當要儲存乙個物件時,先檢查該物件是否被儲存了。

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

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

序列化的實現:將需要被序列化的類實現serializable介面,該介面沒有需要實現的方法,它只是標註該物件是可被序列化的,然後使用乙個輸出流來構造物件流物件,接著,使用objectoutputstream物件的writeobject(object obj)方法就可以將引數為obj的物件寫出(即儲存其狀態),要恢復的話則用輸入流。

序列化是物件永久化的一種機制。一般程式在執行時,產生物件,這些物件隨著程式的停止執行而消失,但如果我們想把某些物件(因為是物件,所以有各自不同的特性)儲存下來,在程式終止執行後,這些物件仍然存在,可以在程式再次執行時讀取這些物件的值,或者在其他程式中利用這些儲存下來的物件。這種情況下就要用到物件的序列化。

物件序列化的最主要的用處就是在傳遞和儲存物件的時候,保證物件的完整性和可傳遞性。譬如通過網路傳輸,或者把乙個物件儲存成乙個檔案的時候要實現序列化介面。

什麼是物件序列化 如何實現 什麼情況下使用

a 什麼是物件序列化 物件序列化可以將乙個物件儲存到乙個檔案,可以將通過流的方式在網路上傳輸,可以將檔案的內容讀取轉化為乙個物件。所謂物件流也就是將物件的內容流化,可以對流化後的物件進行讀寫操作,也可將流化後的物件傳輸於網路之間。序列化是為了解決在物件流進行讀寫操作時引發的問題。b 序列化的實現 將...

layoutSubviews在什麼情況下呼叫

1.在以下情況都會呼叫 注意 當view的size的值為0的時候,addsubview也不會呼叫layoutsubviews。當要給這個view新增子控制項的時候不管他的size有沒有值都會呼叫 2.先來看一下uiview的layoutsubviews在什麼情況下會呼叫 subview view s...

python 在什麼情況下 rmul

在自定義列表mylist之後 3 mylist 報錯,mylist已經過載了 但是3沒有,這時同學告訴我可用 rmul 說我有乙個列表l。在什麼情況下l rmul 自我,其他 叫?我基本上理解了文件,但我也想看到乙個例子,澄清它的用法,毫無疑問。當python試圖乘以兩個物件時,它首先嘗試呼叫左物件...