欢迎推荐人才赚取三位数以上的佣金,活动规则,只要邀请被推荐人关注公众号点击"面试内推",同时回复他的ID给小A,小A会在被推荐人成功入职后跟你分享佣金。佣金有多少呢?文末有惊喜!下面进入今天的正题。
Android开发中经常需要用到序列化,系统提供了两个接口用来实现,· Parcelable· Serializable
今天说下这两个接口在实现上有什么区别
Serializable
Serializable是Java提供的接口,用来标识某一个类可以被序列化,用起来非常简单,只需要implement这个接口,提供get/set方法就可以
Parcelable
Parcelable是Android为了序列化而专门设计的接口类,效率比 Serializable更高。实现 Parcelable的demo像以下这样,
public class Girl implements Parcelable { private int mAge; // 年龄 private boolean mSexy; // 是否性感 @Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(mAge); dest.writeByte((byte) (mSexy ? 1 : 0)); } public static final Parcelable.Creator<Girl> CREATOR = new Parcelable.Creator<Girl>() { public Girl createFromParcel(Parcel in) { Girl girl = new Girl(); girl.mAge = in.readInt(); girl.mSexy = in.readByte() != 0; return girl; } public Girl[] newArray(int size) { return new Girl[size]; } }; @Override public int describeContents() { return 0; }}
通常有几个步骤,· 实现 Parcelable接口· 实现 writeToParcel 方法· 创建 CREATEOR,并实现 createFromParcel 和 newArray
区别
好了,说完这两个接口,来总结下这两个接口的区别· Serializable 是Java提供的接口,本身序列化效率比 Android 的 Parcelable低· 一般对于内存读写要求高的情况下用 Parcelable,程序间的数据传输也可以用 Parcelable· Serializable更适合在文件存储的场景。因为 Parcelable可能会在不同Android版本间存在兼容问题,因此对于数据持久化存储的场景不建议用Parcelable
请随意转发下图到微信群或朋友圈,内推成功的同学,小A将与你分享4位数的佣金哦,最低也有1000大洋!