1、序列化和反序列化,為什么需要這個技術(shù),解決什么問題
序列化是將數(shù)據(jù)轉(zhuǎn)換成二進制串的過程,反序列化是將二進制串轉(zhuǎn)換成數(shù)據(jù)的過程;應(yīng)用場景是網(wǎng)絡(luò)傳輸和數(shù)據(jù)持久化,當(dāng)然大部分情況我們考慮網(wǎng)絡(luò)傳輸,如:rpc,client-server。
實際應(yīng)用中,如微信消息,客戶端基于SDK和序列化協(xié)議來解析服務(wù)端數(shù)據(jù),序列化協(xié)議好的話,應(yīng)該既要保證消息的安全性又要保證數(shù)據(jù)的壓縮比(省流量)。
常見的序列化協(xié)議有:json、xm、protobufl、java默認的序列化Serializable。
有人理解它屬于tcp層的理論,我不認為這屬于通信協(xié)議的范疇,雖然我也不是很懂。。。
2、對象的拷貝,除了實現(xiàn)cloneable接口還可以怎么做?
還可以一層一層的new;
還可以“序列化—反序列化”;

3、B+Tree索引的區(qū)間訪問原理

B+Tree給每個葉子節(jié)點增加了一個指向相鄰葉子節(jié)點的指針,做這個優(yōu)化的目的是為了提高區(qū)間訪問的性能。如上圖,如果要查詢18到49的所有記錄,當(dāng)找到18后,只需順著節(jié)點和指針順序遍歷就可以一次性訪問到所有數(shù)據(jù)節(jié)點,極大的提到了區(qū)間查詢效率。