对 Serializable和Parcelable理解

1、首先他们两个接口都是为了实现对象的序列化,使之可以传递,所谓序列化就是将对象信息装换成可以存储的介质的过程。

2、Serializable是jdk所提供的序列化接口,该接口存在于io包下,可想用于输入输出,使用非常简单,只要让你的类实现此接口就ok了;可以使用transient关键字修饰你不想序列化的属性。

3、Parcelable是sdk所提供的序列化接口,使用较上者麻烦,实现此接口后,需要重写writeToParcel方法,将需要序列化的属性写入Parcel中;

然后还需要CERATOR静态成员属相,以便从parcel中取出数据。如下

public static final Creator CREATOR = new Creator() {

@Override

public Pen createFromParcel(Parcel in) {

return new Pen(in);

}

@Override

public Pen[] newArray(int size) {

return new Pen[size];

}

};

@Override

public int describeContents() {

return 0;

}

@Override

public void writeToParcel(Parcel dest, int flags) {

dest.writeString(color);

dest.writeInt(size);

}

4、两种都是用于支持序列化、反序列化话操作,两者最大的区别在于存储媒介的不同,Serializable使用IO读写存储在硬盘上,而Parcelable是直接在内存中读写,很明显内存的读写速度通常大于IO读写,所以在Android中通常优先选择Parcelable。

通过此文希望能帮助有需要的小伙伴,彻底理解Java Serializable和Parcelable的知识,谢谢大家对本站的支持!

java parcelable_Java Serializable和Parcelable详解及实例代码相关推荐

  1. Java进阶 23种设计模式 详解+应用+实例代码

    文章目录 前言 设计模式六大原则 1.单一原则 (1) 概念 (2) 优点 2.开闭原则 (1) 概念 3.里氏替换原则 (1) 概念 4.依赖倒置原则 (1) 概念 (2) 作用 5.接口隔离原则 ...

  2. java super实例_java Super 用法详解及实例代码

    java Super 用法详解及实例代码 发布于 2021-1-8| 复制链接 摘记: java  Super 用法详解 1)有人写了个很好的初始化属性的构造函数,而你仅仅想要在其中添加另一些自己新建 ...

  3. Java 线程池详解及实例代码

    转载自  Java 线程池详解及实例代码 这篇文章主要介绍了Java 线程池的相关资料,并符实例代码,帮助大家学习参考,需要的朋友可以参考下 线程池的技术背景 在面向对象编程中,创建和销毁对象是很费时 ...

  4. JavaScript 身份证号有效验证详解及实例代码

    这篇文章主要介绍了JavaScript 身份证号有效验证详解及实例代码的相关资料,需要的朋友可以参考下 JavaScript验证身份证号 1 2 3 4 5 6 7 8 9 10 11 12 13 1 ...

  5. python随机数程序源码_Python 实现随机数详解及实例代码

    Python3实现随机数 random是用于生成随机数的,我们可以利用它随机生成数字或者选择字符串. random.seed(x)改变随机数生成器的种子seed. 一般不必特别去设定seed,Pyth ...

  6. mysql 字段 as_mysql 字段as详解及实例代码

    mysql 字段使用as 在mysql中,select查询可以使用AS关键字为查询的字段起一个别名,该别名用作表达式的列名,并且别名可以在GROUP BY,ORDER BY或HAVING等语句中使用. ...

  7. 一文数学数模-相关性分析(二)斯皮尔曼相关(spearman)相关性分析一文详解+python实例代码

    前言 相关性分析算是很多算法以及建模的基础知识之一了,十分经典.关于许多特征关联关系以及相关趋势都可以利用相关性分析计算表达.其中常见的相关性系数就有三种:person相关系数,spearman相关系 ...

  8. 坐标移动c语言,C语言 坐标移动详解及实例代码

    搜索热词 题目描述 开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动.从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面. ...

  9. Flutter中Scaffold布局的使用详解及实例代码

    Flutter中Scaffold布局的使用详解及实例代码 Scaffold实现了基本的Material布局.只要是在Material中定义了的单个界面显示的布局控件元素,都可以使用Scaffold来绘 ...

最新文章

  1. 底部菜单 点击突起_iOS开发之上下文交互菜单(UIContextMenuInteraction)
  2. Liferay激活Navigation和Breadcrumb
  3. c调用python gensim包_Jupyter Notebooks嵌入Excel并使用Python替代VBA宏
  4. 【架构设计的艺术】Kafka如何通过精妙的架构设计优化JVM GC问题?
  5. 解决ios下的微信打开的页面背景音乐无法自动播放(转载)
  6. 详解电脑屏幕垃圾广告怎么去除
  7. 获取GridView的BoundField值
  8. python语言编写一个生成九宫格图片的代码_python生成九宫格图片
  9. 【计算机系统基础】- 袁春风
  10. 在windows 7上是否可以运行win 10的应用
  11. 微信怎样诞生:张小龙给马化腾的一封邮件
  12. command/cmd命令大全
  13. 如何免ROOT,实现安卓设备远程控制?
  14. window.print() 实现A4纸张打图片分页,解决预览首页空白页、打印多出一张空白页问题
  15. python程序采用unicode编码、英文字符_python--基础字符编码
  16. 代码随想录——求根节点到叶节点数字之和
  17. 论文阅读——Multi-Task Learning Framework for Extracting Emoton Cause Span and Entailment in Conversations
  18. HTML onsubmit 事件属性
  19. 太原理工web学习T答案
  20. 3dsmax怎么添加uv坐标_012:多层贴图UVWMAP(UV坐标)技术

热门文章

  1. 20.新系统Ubuntu20.4 安装ssh server
  2. 《精通正则表达式(第三版)》下载
  3. 【收藏】2020年Python量化文章合辑
  4. 计算机系期中教学检查,第二学期期中教学检查的自查报告
  5. 2022国际版多语言多商户智能机器人在线客服源码配置文档
  6. wps中将文档输出为pdf_如何将wps文档转换为pdf格式
  7. Android日记本报告,「最美应用」这款极简主义者的日记本,终于有了 Android 版...
  8. LINK : fatal error LNK1168: cannot open Debug/Test.exe for writing的解决方法
  9. 微型计算机2015年10月,微型计算机及接口技术2010年10月真题试题(04732)
  10. 2010年,哪些智能手机很热门?