您的位置 首页 java

Java编程细节 Java数据的序列化总结

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

文章来源:智云一二三科技

文章标题:Java编程细节 Java数据的序列化总结

文章地址:https://www.zhihuclub.com/168965.shtml

关于作者: 智云科技

热门文章

网站地图