Serializable 和 Parcelable 的选择

  • Serializable
    的作用是为了保存对象的属性到本地文件、数据库、网络流等以方便数据传输,当然这种传输可以是程序内的也可以是两个程序间的。
  • Parcelable 的设计初衷是因为Serializable 效率过慢,为了在程序内不同组件间以及不同 Android
    程序间(AIDL)高效的传输数据而设计,这些数据仅在内存中存在,而且 Parcelable 是通过 IBinder 通信的消息的载体。

两者的区别:

  1. 在使用内存的时候,Parcelable 类比 Serializable 性能高。
  2. Serializable在序列化的时候会产生大量的临时变量,从而引起频繁的GC。
  3. Parcelable不能适用在要将数据存储在磁盘上的情况,因为Parcelable 在外界有变化的情况下,不能很好的保证数据的持续性。

适用场景:

  1. 只在内存中操作数据时,比如两个 Activity 之间 传输数据。
  2. 需要持久化数据时,比如需要将数据保存的本地文件、数据库,所以尽管 Serializable 效率低点,
    也不提倡用,但在这种情况下,还是建议你用 Serializable 。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SammieZhang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值