-
1.功能。 Serializable 的目的是將物件的屬性儲存到本地檔案、資料庫、網路流和 RMI 中,以便於資料傳輸,這些資料可以在乙個程式內或兩個程式之間傳輸。
Android 的 Parcelable 旨在有效地在程式內的不同元件之間以及不同的 Android 程式 (AITL) 之間傳輸資料,因為 Serializable 速度太慢,而且這些資料僅存在於記憶體中,而 Parcelable 是通過 iBinder 傳達的訊息的載體。
2.效率和選擇。
Parcelable 的效能優於 Serializable,記憶體開銷較小,因此建議在記憶體之間傳輸資料時使用 Parcelable,例如在活動之間傳輸資料,並且 Serializable 可以持久化資料以便於儲存,因此當您需要通過網路儲存或傳輸資料時,請選擇 Serializable,因為不同版本的 Android Parcelable 可能會有所不同, 因此,不建議使用 parcelable 進行資料持久化。
3.程式設計實現。
對於 Serializable,該類只需實現 Serializable 介面並提供序列化版本 ID (SerialVersionUID)。 而。
Parcelable 需要實現 writetoparcel、describecontents 函式和靜態建立者變數,本質上是如何自己打包和解壓作品,序列化完全由底層實現。
4.高階功能。
Serializable 不儲存靜態變數,可以使用 transient 關鍵字不序列化某些字段,也可以重寫 writeObject 和 readObject 方法來自定義序列化過程。
-
兩者都用於支援序列化和反序列化操作,兩者最大的區別在於儲存介質的差異,Serializable 使用 io 在硬碟上讀寫和儲存,而 parcelable 是直接在記憶體中讀寫,很明顯記憶體的讀寫速度通常大於 io 讀寫, 因此,parcelable 通常是 Android 的首選。
Android 是一種基於 Linux 的開源作業系統,主要用於可攜式裝置。 目前,沒有統一的中文名稱,中國大陸更多的人使用Android(非官方)或Anzhi(官方)。 Android作業系統最初由Andy Rubin開發,最初主要支援手機。 >>>More
你有沒有玩過300+,只有1100個左右的數字(就是怎麼拿到MVP不會加分,和朋友一起玩小朋友的特殊號碼),我可以拿1300左右,你也可以帶你去玩Dota,我有2100+的梯子,你自己想想。