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

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

分享到微博請遵守國家法律
玉山县| 德格县| 大渡口区| 丰台区| 平阴县| 承德县| 丰宁| 新闻| 麦盖提县| 泗洪县| 年辖:市辖区| 新巴尔虎左旗| 蕲春县| 武陟县| 蓬溪县| 洪江市| 漳州市| 宜宾县| 博湖县| 罗甸县| 花垣县| 顺昌县| 宁乡县| 灵川县| 尚志市| 定陶县| 阿巴嘎旗| 贞丰县| 江西省| 阳信县| 肥乡县| 贡觉县| 南城县| 象山县| 霍山县| 额尔古纳市| 楚雄市| 宁波市| 霞浦县| 漳州市| 莲花县|