文章类网站源码,wordpress官方模版,wordpress 删除 后台菜单,外贸采购平台推荐Serializable和Parcelable接口可以完成对象的序列化的过程#xff0c;当我们需要通过Intent和Binder传输数据时就需要使用Parcelable或者Serializable#xff0c;有时候我们还需要把对象持久化到存储设备上或者通过网络传输给其他客户端#xff0c;这个时候也需要使用Seriaz… Serializable和Parcelable接口可以完成对象的序列化的过程当我们需要通过Intent和Binder传输数据时就需要使用Parcelable或者Serializable有时候我们还需要把对象持久化到存储设备上或者通过网络传输给其他客户端这个时候也需要使用Seriazable来完成对象的持久化.
Serializable简介
Serializable 是Java所提供的一个序列化接口它是一个空接口为对象提供标准的序列化和反序列化操作。使用Serializable来实现序列化相当简单只需要类在声明中指定一个类似下面的标示即可实现默认的序列化过程。
Parcelable接口
Parcelable也是一个接口只要实现了这个接口一个类的对象就可以实现序列化和并且通过Intent和Binder传递。 1、序列化功能由writeToParcel来完成最终是通过Parcel中的一些列write方法来完成的。2、反序列化是由CREATOR来完成其内部标明了如何创建序列化对象和数组并通过Parcel的一些列read方法来完成反序列化过程。3、内容描述功能由describeContents方法来完成几乎在所有情况下这个方法都应该返回0仅当前对象中存在文件描述符时此方法返回1。 平台区别 Serializable是属于 Java 自带的表示一个对象可以转换成可存储或者可传输的状态序列化后的对象可以在网络上进行传输也可以存储到本地。Parcelable 是属于 Android 专用。不过不同于SerializableParcelable实现的原理是将一个完整的对象进行分解。而分解后的每一部分都是Intent所支持的数据类型 编写上的区别 Serializable代码量少写起来方便Parcelable代码多一些略复杂 选择的原则 1、如果是仅仅在内存中使用比如activity、service之间进行对象的传递强烈推荐使用Parcelable因为Parcelable比Serializable性能高很多。因为Serializable在序列化的时候会产生大量的临时变量 从而引起频繁的GC。2、如果是持久化操作推荐Serializable虽然Serializable效率比较低但是还是要选择它因为在外界有变化的情况下Parcelable不能很好的保存数据的持续性。 本质的区别 1、Serializable的本质是使用了反射序列化的过程比较慢这种机制在序列化的时候会创建很多临时的对象比引起频繁的GC、2、Parcelable方式的本质是将一个完整的对象进行分解而分解后的每一部分都是Intent所支持的类型这样就实现了传递对象的功能了。