前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java数据的序列化总结

Java数据的序列化总结

作者头像
PhoenixZheng
发布2018-08-07 16:40:12
2140
发布2018-08-07 16:40:12
举报

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Android每日一讲 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Serializable
  • Parcelable
  • 区别
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档