Java数据的序列化总结

120 阅读2分钟
原文链接: mp.weixin.qq.com

欢迎推荐人才赚取三位数以上的佣金,活动规则,只要邀请被推荐人关注公众号点击"面试内推",同时回复他的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大洋!