最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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傳遞對象為什么需要序列化?的評論 (共 條)

分享到微博請遵守國家法律
乐陵市| 杭锦旗| 柳河县| 启东市| 桦川县| 收藏| 蒙山县| 新绛县| 仲巴县| 喜德县| 鄂托克旗| 百色市| 阿勒泰市| 莫力| 广丰县| 英德市| 乌恰县| 建昌县| 邳州市| 河南省| 辽宁省| 成安县| 肇东市| 拉萨市| 永福县| 时尚| 苍梧县| 张家港市| 城市| 仙游县| 凤山市| 潮州市| 喀喇沁旗| 资阳市| 涟水县| 义马市| 永仁县| 虎林市| 垫江县| 井陉县| 广丰县|