五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Android Serialzable和Parcelable的區(qū)別?Bunder傳遞對象為什么需要序列化?

2022-10-26 17:02 作者:早起的年輕人  | 我要投稿

1 Bunder傳遞對象為什么需要序列化?

因為bundle傳遞數(shù)據(jù)時只支持基本數(shù)據(jù)類型,所以在傳遞對象時需要序列化轉(zhuǎn)換成可存儲或可傳輸?shù)谋举|(zhì)狀態(tài)(字節(jié)流)。

序列化后的對象可以在網(wǎng)絡、IPC(比如啟動另一個進程的Activity、Service和Reciver)之間進行傳輸,也可以存儲到本地。

2 Serialzable和Parcelable的區(qū)別?

Serializable和Parcelable接口可以完成對象的序列化的過程,當我們需要通過Intent和Binder傳輸數(shù)據(jù)時就需要使用Parcelable或者Serializable,有時候我們還需要把對象持久化到存儲設備上或者通過網(wǎng)絡傳輸給其他客戶端,這個時候也需要使用Seriazable來完成對象的持久化.

2.1 基本區(qū)別

Serializable是屬于 Java 自帶的,表示一個對象可以轉(zhuǎn)換成可存儲或者可傳輸?shù)臓顟B(tài),序列化后的對象可以在網(wǎng)絡上進行傳輸,也可以存儲到本地。

Parcelable 是屬于 Android 專用。不過不同于Serializable,Parcelable實現(xiàn)的原理是將一個完整的對象進行分解。而分解后的每一部分都是Intent所支持的數(shù)據(jù)類型。

2.2 本質(zhì)的區(qū)別

Serializable的本質(zhì)是使用了反射,序列化的過程比較慢,這種機制在序列化的時候會創(chuàng)建很多臨時的對象,比引起頻繁的GC、

Parcelable方式的本質(zhì)是將一個完整的對象進行分解,而分解后的每一部分都是Intent所支持的類型,這樣就實現(xiàn)了傳遞對象的功能了。

2.3 應用場景

在 activity、service之間進行對象的傳遞,推薦使用Parcelable,因為Parcelable比Serializable性能高很多。因為Serializable在序列化的時候會產(chǎn)生大量的臨時變量, 從而引起頻繁的GC。

如果是持久化操作,推薦Serializable,雖然Serializable效率比較低,但是還是要選擇它,因為在外界有變化的情況下,Parcelable不能很好的保存數(shù)據(jù)的持續(xù)性。

————————————————

完畢

Android Serialzable和Parcelable的區(qū)別?Bunder傳遞對象為什么需要序列化?的評論 (共 條)

分享到微博請遵守國家法律
平安县| 乳山市| 太谷县| 崇文区| 嘉义市| 临洮县| 罗定市| 汝州市| 建昌县| 城固县| 阜新市| 山丹县| 鄱阳县| 巨野县| 柏乡县| 宜兰市| 城口县| 德惠市| 丰都县| 裕民县| 铅山县| 安塞县| 沭阳县| 沐川县| 鄂尔多斯市| 吐鲁番市| 永修县| 景洪市| 桐庐县| 龙门县| 昌江| 嵊泗县| 宾阳县| 武邑县| 海盐县| 竹山县| 江孜县| 鄂托克前旗| 封开县| 盐津县| 林芝县|