序列化

作者: 擎天一柱aaa | 来源:发表于2020-02-25 16:33 被阅读0次

1:什么是序列化

         把对象转换为字节序列的过程称为对象的序列化

2:为什么需要序列化

        永久性保存对象,保存对象的字节序列到本地文件中;

        对象在网络中传递;

        对象在 IPC 间传递。

3:序列化

是众所周知,序列化有2种,一种是jdk的Serializable,一种是sdk的parcelable。

   Serializable

直接实现接口即可,这里我们要关注serialVersionUID。serialVersionUID值不手动指定不会影响序列化,如果有反序列化操作,目标对象属性发生变化会无法成功反序列化,最好还是手动指定。transient(短暂的; 转瞬即逝的; 临时的) 修饰的属性,是不会被序列化的。这个修饰符是专门用来保证被修饰的属性不被序列化的,在java中还没发现其他的作用。static修饰的属性,不属于对象,同样不会被序列化。

    Parcelable

实现接口,重写几个方法。1describeContents,一般返回0就行。2writeToParcel完成对象的序列化操作主要写入的操作顺序和读取的要一致。3CREATOR完成反序列化。

4:两者区别

Parcelable和Serializable都是实现序列化并且都可以用于Intent间传递数据。Serializable是Java的实现方式,会频繁的IO操作,所以消耗比较大,但是实现方式简单; Parcelable是Android提供的方式,效率比较高,但是实现起来复杂一些 ;二者的选取规则是:内存序列化上选择Parcelable,存储到设备或者网络传输上选择Serializable.

相关文章

网友评论

      本文标题:序列化

      本文链接:https://www.haomeiwen.com/subject/fiztchtx.html