千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > Parceable和Serializable的區別?

Parceable和Serializable的區別?

來源:千鋒教育
發布人:xqq
時間: 2023-10-11 15:04:05 1697007845

一、Parceable和Serializable的區別

兩者最大的區別在于存儲媒介的不同,Serializable使用IO讀寫存儲在硬盤上,而Parcelable是直接在內存中讀寫,很明顯內存的讀寫速度通常大于IO讀寫,所以在Android中通常優先選擇Parcelable。

1)在使用內存的時候,Parcelable比Serializable性能高,所以推薦使用Parcelable。

2)Serializable在序列化的時候會產生大量的臨時變量,從而引起頻繁的GC(垃圾回收)。

3)Parcelable不能使用在要將數據存儲在磁盤上的情況,因為Parcelable不能很好的保證數據的持續性在外界有變化的情況下。盡管Serializable效率低點,但此時還是建議使用Serializable 。

Serializable可將數據持久化方便保存,所以在需要保存或網絡傳輸數據時選擇Serializable,因為android不同版本Parcelable可能不同,所以不推薦使用Parcelable進行數據持久化。

延伸閱讀:

二、Seralizable介紹

1.Serializable 是java的序列化技術,最簡單的使用方式為在需要序列化的class增加implements Serializable,并增加一個少數個序列化id: private static final long serialVersionUID = 1L; 默認方式較好直接設置為1L,因為java sdk會自動進行hash計算,并生成少數的UID值。手動設置serialVersionUID的好處是當前class如果改變了成員變量,比如增加或者刪除之后,這個UID是不改變的,那么反序列化就不會失敗;自動設置則在改變了成員變量之后就會重新計算獲得新的UID,從而導致失敗。不過,大多數情況下兩者都可以。

2.Seralizable相對Parcelable而言,好處就是非常簡單,只需對需要序列化的類class執行就可以,不需要手動去處理序列化和反序列化的過程,所以常常用于網絡請求數據處理,Activity之間傳遞值的使用。

3.Seralizable無法序列化靜態變量,使用transient修飾的對象也無法序列化。

4.當一個父類實現序列化,子類自動實現序列化,不需要再顯示實現Serializable接口。

聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
久久亚洲中文字幕精品一区四,亚洲日本另类欧美一区二区,久久久久久久这里只有免费费精品,高清国产激情视频在线观看
亚洲中文字字幕在线乱码 | 亚洲色一色噜一噜噜噜人与 | 亚洲性福利网站 | 亚洲乱码中文字幕综合精品视频 | 亚洲精品自在线拍亚洲Aα 亚洲中文字幕超麻 | 在线观看AV网站麻豆 |