介紹
互聯(lián)網(wǎng)的產(chǎn)生帶來(lái)了機(jī)器間通訊的需求,而互聯(lián)通行的雙方采用約定的協(xié)議,序列化和反序列化屬于通訊協(xié)議的一部分。通訊協(xié)議往往采用分層模型,不同模型每層定義的功能和顆粒不同。
- 序列化 將數(shù)據(jù)結(jié)構(gòu)或者對(duì)象轉(zhuǎn)換成二進(jìn)制串的過(guò)程
- 反序列化 將在序列化過(guò)程所生成的二進(jìn)制串轉(zhuǎn)換成數(shù)據(jù)結(jié)構(gòu)或者對(duì)象的過(guò)程
在不同的計(jì)算機(jī)語(yǔ)言中,數(shù)據(jù)結(jié)構(gòu),對(duì)象以及二進(jìn)制串的表示方式并不相同
- 數(shù)據(jù)結(jié)構(gòu)和對(duì)象: 對(duì)于 Java 這種完全面向?qū)ο缶幊痰恼Z(yǔ)言,所操作的一切都是對(duì)象 Object,來(lái)自于類的實(shí)例化
- 二進(jìn)制串 序列化生成的二進(jìn)制串指的是存儲(chǔ)在內(nèi)存中的一塊數(shù)據(jù)。在 Java 中很容易和 String 混淆。實(shí)際上對(duì)于跨語(yǔ)言通訊,序列化后的數(shù)據(jù)當(dāng)然不是某種語(yǔ)言的特殊數(shù)據(jù)類型,二進(jìn)制在 Java 里面指的是 byte[]
參考資料
序列化和反序列化