1、序列化和反序列化,為什么需要這個技術,解決什么問題
序列化是將數據轉換成二進制串的過程,反序列化是將二進制串轉換成數據的過程;應用場景是網絡傳輸和數據持久化,當然大部分情況我們考慮網絡傳輸,如:rpc,client-server。
實際應用中,如微信消息,客戶端基于SDK和序列化協議來解析服務端數據,序列化協議好的話,應該既要保證消息的安全性又要保證數據的壓縮比(省流量)。
常見的序列化協議有:json、xm、protobufl、java默認的序列化Serializable。
有人理解它屬于tcp層的理論,我不認為這屬于通信協議的范疇,雖然我也不是很懂。。。
2、對象的拷貝,除了實現cloneable接口還可以怎么做?
還可以一層一層的new;
還可以“序列化—反序列化”;
3、B+Tree索引的區間訪問原理
B+Tree給每個葉子節點增加了一個指向相鄰葉子節點的指針,做這個優化的目的是為了提高區間訪問的性能。如上圖,如果要查詢18到49的所有記錄,當找到18后,只需順著節點和指針順序遍歷就可以一次性訪問到所有數據節點,極大的提到了區間查詢效率。