您现在的位置是:网站建设 >>正文
移动开发:序列化与反序列化Parcelable和Serializable浅析
网站建设93599人已围观
简介在日常的应用开发中,我们可能需要让某些对象离开内存空间,存储到物理磁盘,以便长期保存,同时也能减少对内存的压力,而在需要时再将其从磁盘读取到内存,比如将某个特定的对象保存到文件中,隔一段时间后再把它读 ...
在日常的移动应用开发中,我们可能需要让某些对象离开内存空间,序列序列存储到物理磁盘,化反化Pe和以便长期保存,浅析同时也能减少对内存的移动压力,而在需要时再将其从磁盘读取到内存,序列序列比如将某个特定的化反化Pe和对象保存到文件中,隔一段时间后再把它读取到内存中使用,浅析那么该对象就需要实现序列化操作,移动在Java中可以使用Serializable接口实现对象的序列序列序列化,而在android中既可以使用Serializable接口实现对象序列化也可以使用Parcelable接口实现对象序列化,化反化Pe和但是浅析在内存操作时更倾向于实现Parcelable接口,这样会使用传输效率更高效。移动接下来我们将分别详细地介绍这样两种序列化操作。序列序列了解序列化与反序列
序列化
由于存在于内存中的化反化Pe和对象都是暂时的,无法长期驻存,为了把对象的状态保持下来,这时需要把对象写入到磁盘或者其他介质中,这个过程就叫做序列化。
反序列化
反序列化恰恰是序列化的反向操作,也就是说,把已存在在磁盘或者其他介质中的对象,反序列化(读取)到内存中,以便后续操作,而这个过程就叫做反序列化。
概括性来说序列化是指将对象实例的状态存储到存储媒体(磁盘或者其他介质)的过程。在此过程中,先将对象的公共字段和私有字段以及类的名称(包括类所在的程序集)转换为字节流,然后再把字节流写入数据流。在随后对对象进行反序列化时,将创建出与原对象完全相同的副本。
实现序列化的必要条件
一个对象要实现序列化操作,该类就必须实现了Serializable接口或者Parcelable接口,其中Serializable接口是在java中的序列化抽象类,而Parcelable接口则是android中特有的序列化接口,在某些情况下,Parcelable接口实现的序列化更为高效,关于它们的实现案例我们后续会分析,这里只要清楚知道实现序列化操作时必须实现Serializable接口或者Parcelable接口之一即可。
序列化的应用情景
主要有以下情况(但不限于以下情况)
1)内存中的对象写入到硬盘;
2)用套接字在网络上传送对象;
3)通过RMI(RemoteMethodInvoke远程方法调用)传输对象;
Serializable
Serializable是java提供的一个序列化接口,它是一个空接口,专门为对象提供标准的序列化和反序列化操作,使用Serializable实现类的序列化比较简单,只要在类声明中实现Serializable接口即可,同时强烈建议声明序列化标识。
Parcelable
鉴于Serializable在内存序列化上开销比较大,而内存资源属于android系统中的稀有资源(android系统分配给每个应用的内存开销都是有限的),为此android中提供了Parcelable接口来实现序列化操作,Parcelable的性能比Serializable好,在内存开销方面较小,所以在内存间数据传输时推荐使用Parcelable,如通过Intent在activity间传输数据,而Parcelable的缺点就使用起来比较麻烦。
序列化
由于存在于内存中的化反化Pe和对象都是暂时的,无法长期驻存,为了把对象的状态保持下来,这时需要把对象写入到磁盘或者其他介质中,这个过程就叫做序列化。
反序列化
反序列化恰恰是序列化的反向操作,也就是说,把已存在在磁盘或者其他介质中的对象,反序列化(读取)到内存中,以便后续操作,而这个过程就叫做反序列化。
概括性来说序列化是指将对象实例的状态存储到存储媒体(磁盘或者其他介质)的过程。在此过程中,先将对象的公共字段和私有字段以及类的名称(包括类所在的程序集)转换为字节流,然后再把字节流写入数据流。在随后对对象进行反序列化时,将创建出与原对象完全相同的副本。
实现序列化的必要条件
一个对象要实现序列化操作,该类就必须实现了Serializable接口或者Parcelable接口,其中Serializable接口是在java中的序列化抽象类,而Parcelable接口则是android中特有的序列化接口,在某些情况下,Parcelable接口实现的序列化更为高效,关于它们的实现案例我们后续会分析,这里只要清楚知道实现序列化操作时必须实现Serializable接口或者Parcelable接口之一即可。
序列化的应用情景
主要有以下情况(但不限于以下情况)
1)内存中的对象写入到硬盘;
2)用套接字在网络上传送对象;
3)通过RMI(RemoteMethodInvoke远程方法调用)传输对象;
Serializable
Serializable是java提供的一个序列化接口,它是一个空接口,专门为对象提供标准的序列化和反序列化操作,使用Serializable实现类的序列化比较简单,只要在类声明中实现Serializable接口即可,同时强烈建议声明序列化标识。
Parcelable
鉴于Serializable在内存序列化上开销比较大,而内存资源属于android系统中的稀有资源(android系统分配给每个应用的内存开销都是有限的),为此android中提供了Parcelable接口来实现序列化操作,Parcelable的性能比Serializable好,在内存开销方面较小,所以在内存间数据传输时推荐使用Parcelable,如通过Intent在activity间传输数据,而Parcelable的缺点就使用起来比较麻烦。
Tags:
上一篇:着陆页设计
下一篇:如何建设企业品牌网站
相关文章
一键建站系统最适合新手?
网站建设现在建站的方式多种多样,不管是个人还是企业,只要找对方法,都能顺利建立一个专属网站。那么现在常用的建站方法都有哪些?主要是这四种:自己源代码开发、半自助开发、找外包团队定制、使用自助一键建站系统。这四 ...
【网站建设】
阅读更多友链链接有哪些作用,以及注意事项
网站建设一般情况网站都会有友链链接,知道它有什么用处吗?友链可以为网站带来很大的效益,所以我建议网站上面多添加一些友链来进行网站之间的互动,那么友链可以随意的加吗?今天就跟随小编一起来了解下吧!1、要找和自己 ...
【网站建设】
阅读更多网站被k后如何快速恢复
网站建设相信各位优化师都会越到这种情况,自己操作的网站突然有一天网站排名全无,都掉到了100+后,而去查询网站权重时也变成了0,那这种情况就是网站被k了吗?又该如何去解决这种情况,今天小编来给大家讲一讲这个问 ...
【网站建设】
阅读更多
最新文章
友情链接
- 如何选择靠谱的长沙网站开发公司
- 以一个访客视角,探讨公司网站制作原则
- 企业网站建设中,怎么才能让图片发挥作用
- 广州网站建设流程有哪些?
- 外贸网站制作如何收费?
- 广东网页设计公司哪家好?
- 网站制作费用为什么会有差别?
- 如何验证衡阳网站制作公司的水平?
- 武汉网站建设你了解多少?
- 中山网站建设如何介绍自己的网站更好地满足用户需求?
- 网站目标转化率优化:长沙网站建设如何提高目标转化率
- 企业网站设计中触摸与移动交互的有效实践
- 网站制作费用为什么会有差别?
- 将这四个点添加到衡阳网站建设会是一个很好的网站
- 企业网站找个人建站和专业衡阳建站公司的区别
- 佛山网站建设需要避开哪些不利因素?
- 在长沙网站设计中,如何有效地使用3D元素?
- 中山网站建设如何确保网站的安全性?
- 湘潭网站开发费用怎么算?
- 深圳网站建设将如何影响公司