1、序列化和反序列化的定義:
(1)java序列化就是指把java對象轉換為位元組序列的過程
java反序列化就是指把位元組序列恢複為java對象的過程。
(2)序列化最重要的作用:在傳遞和儲存對象時.保證對象的完整性和可傳遞性。對象轉換為有序位元組流,以便在網絡上傳輸或者儲存在本地檔案中。
反序列化的最重要的作用:根據位元組流中儲存的對象狀态及描述資訊,通過反序列化重建對象。
總結:核心作用就是對象狀态的儲存和重建。(整個過程核心點就是位元組流中所儲存的對象狀态及描述資訊)
2、json/xml的資料傳遞:
在資料傳輸(也可稱為網絡傳輸)前,先通過序列化工具類将java對象序列化為json/xml檔案。
在資料傳輸(也可稱為網絡傳輸)後,再将json/xml檔案反序列化為對應語言的對象
3、序列化優點:
①将對象轉為位元組流存儲到硬碟上,當jvm停機的話,位元組流還會在硬碟上默默等待,等待下一次jvm的啟動,把序列化的對象,通過反序列化為原來的對象,并且序列化的二進制序列能夠減少存儲空間(永久性儲存對象)。
②序列化成位元組流形式的對象可以進行網絡傳輸(二進制形式),友善了網絡傳輸。
③通過序列化可以在程序間傳遞對象。
4、序列化算法需要做的事:
① 将對象執行個體相關的類中繼資料輸出。
② 遞歸地輸出類的超類描述直到不再有超類。
③ 類中繼資料輸出完畢後,從最頂端的超類開始輸出對象執行個體的實際資料值。
④ 從上至下遞歸輸出執行個體的資料