Serializable 和 Parcelable 的区别?

Posted 码上加油站

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Serializable 和 Parcelable 的区别?相关的知识,希望对你有一定的参考价值。

1.在使用内存的时候,Parcelable 类比 Serializable 性能高,所以推荐使用 Parcelable 类。
2.Serializable 在序列化的时候会产生大量的临时变量,从而引起频繁的 GC。
3.Parcelable 不能使用在要将数据存储在磁盘上的情况。尽管 Serializable 效率低点,但在这种情况下,还是建
议你用 Serializable 。
实现:
1 Serializable 的实现,只需要继承 Serializable 即可。这只是给对象打了一个标记,系统会自动将其序列化。
2 Parcelabel 的实现,需要在类中添加一个静态成员变量 CREATOR,这个变量需要继承 Parcelable.Creator 接
口。

public class MyParcelable implements Parcelable {
  private int mData;
  public int describeContents() {
    return 0;
  }
  public void writeToParcel(Parcel out, int flags) {
    out.writeInt(mData);
  }
  public static final Parcelable.Creator<MyParcelable> CREATOR
    = new Parcelable.Creator<MyParcelable>() {
    public MyParcelable createFromParcel(Parcel in) {
      return new MyParcelable(in);
    }
    public MyParcelable[] newArray(int size) {
      return new MyParcelable[size];
    }
  };
  private MyParcelable(Parcel in) {
    mData = in.readInt();
  }
}

 

以上是关于Serializable 和 Parcelable 的区别?的主要内容,如果未能解决你的问题,请参考以下文章

Parcelable和Serializable的区别

Parcelable和Serializable的区别

Parcelable和Serializable的区别

Serializable & Parcelable 原理和区别

Serializable & Parcelable 原理和区别

Android中的Parcelable接口和Serializable用法和区别