天天看點

什麼是序列化和反序列化?

1、序列化和反序列化的定義:

(1)java序列化就是指把java對象轉換為位元組序列的過程

java反序列化就是指把位元組序列恢複為java對象的過程。

(2)序列化最重要的作用:在傳遞和儲存對象時.保證對象的完整性和可傳遞性。對象轉換為有序位元組流,以便在網絡上傳輸或者儲存在本地檔案中。

反序列化的最重要的作用:根據位元組流中儲存的對象狀态及描述資訊,通過反序列化重建對象。

總結:核心作用就是對象狀态的儲存和重建。(整個過程核心點就是位元組流中所儲存的對象狀态及描述資訊)

2、json/xml的資料傳遞:

在資料傳輸(也可稱為網絡傳輸)前,先通過序列化工具類将java對象序列化為json/xml檔案。

在資料傳輸(也可稱為網絡傳輸)後,再将json/xml檔案反序列化為對應語言的對象

3、序列化優點:

①将對象轉為位元組流存儲到硬碟上,當jvm停機的話,位元組流還會在硬碟上默默等待,等待下一次jvm的啟動,把序列化的對象,通過反序列化為原來的對象,并且序列化的二進制序列能夠減少存儲空間(永久性儲存對象)。

②序列化成位元組流形式的對象可以進行網絡傳輸(二進制形式),友善了網絡傳輸。

③通過序列化可以在程序間傳遞對象。

4、序列化算法需要做的事:

① 将對象執行個體相關的類中繼資料輸出。

② 遞歸地輸出類的超類描述直到不再有超類。

③ 類中繼資料輸出完畢後,從最頂端的超類開始輸出對象執行個體的實際資料值。

④ 從上至下遞歸輸出執行個體的資料