序列化與反序列化的本質(zhì)?
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
本文僅是筆者個人的思考與總結(jié),請謹慎閱讀。 一、本質(zhì)在個人看來,“序列化”的本質(zhì)就是將“用指針表達”的數(shù)據(jù)變成“直接用數(shù)值表達”。 而“反序列化”則是將“直接用數(shù)值表達”的數(shù)據(jù)還原成“用指針表達”。 為啥要進行這種“序列化”與“反序列化”的操作呢? 二、關于相互轉(zhuǎn)換目的就是為了讓數(shù)據(jù)實現(xiàn)從“方便操作”到“方便存儲”的相互轉(zhuǎn)換。 序列化是為了方便存儲,反序列化是為了方便操作。 來個具體的例子,比如現(xiàn)在有個Java對象,如果你只是需要用它編寫各種業(yè)務邏輯和進行計算,那么直接用就行,很方便。 但假如你要將這個對象“持久化”,想將這個對象存儲到某個文本文件中,你就需要將這個對象先進行一個“序列化”。 三、關于對象的存儲為啥不能直接將對象存儲到文本文件中呢? 因為,對象的本質(zhì)是“指針”組成的實體。 指針的本質(zhì)其實就是“內(nèi)存地址”,而內(nèi)存地址的本質(zhì)則是“二進制數(shù)據(jù)”。 所謂的文本文件不能存儲對象的本質(zhì)其實就是文本文件不能存儲二進制數(shù)據(jù)。 四、打個比方可以打一個粗糙的比喻,這就像你有個富豪朋友想送車給你。 本來他是想當面送給你的,可是突然有事所以就改為告訴你具體的4S店地址,他已經(jīng)付過錢你可以直接去取。 這就是一個典型的“反序列化”,即由直接當面給你實體車,變成給你一個地址讓你自己去取。 可是當你剛剛出門,你的富豪朋友又突然電話你說他忙完了,打算還是當面送你車,他會把車開過來。 這就又變成了一個“序列化”的場景,即從告訴你地址讓你取,變成直接將實體車送到你面前。 閱讀原文:https://mp.weixin.qq.com/s/zd345FKAWIbJa2OqG0pbZg 該文章在 2025/10/23 17:35:45 編輯過 |
關鍵字查詢
相關文章
正在查詢... |