Android开发-Serializable与Parcelable比较

参考资料:
https://www.jianshu.com/p/a60b609ec7e7

笔记:

实现方式

  • Serializable
    实现Serializable接口,并且定义seriaVersionUID,seriaVersionUID的作用是防止在反序列化的时候,由于原生类被修改了,而导致反序列化失败

    可以通过重写writeObject方法和readObject方法自定义序列化

    transient标记的属性不会自动序列化

  • Parcelable
    实现Parcelable接口,重写writeToParcel方法和describeContents方法,并且定义静态变量CREATOR

性能

  • Parcelable是将对象拆分成一系列小的模块,并将每一个模块放进Parcel中,主要用于在内存中传递对象,性能高
  • Serializable是将对象转换成二进制流,主要用于数据持久化和网络传输,性能差,因为在反序列化时,需要用到反射

选择

  • 如果只是在不同模块之间传递数据,不需要持久化,使用Parcelable,因为效率高
  • 如果需要数据持久化,或者网络传输,使用Serializable

猜你喜欢

转载自blog.csdn.net/qq_19694479/article/details/80682525