美文网首页
序列化-Serializable和Pracelable

序列化-Serializable和Pracelable

作者: 洛草为王 | 来源:发表于2020-04-02 15:27 被阅读0次

什么是序列化?

序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式(二进制字节流)的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。

  • 序列化:内存中的对象 -> 磁盘
  • 反序列化:磁盘 -> 内存中的对象

序列化方式

  • Serializable: java提供的
  • Parcelable:android提供的

Serializable和Parcelable的区别

  • 存储媒介
    Serializable使用IO读写存储在硬盘上。序列化过程使用了反射技术,并且期间产生临时对象。优点实现简单,缺点性能低。
    Parcelable是直接在一块共享内存中读写。优点性能好,缺点实现复杂。

  • 使用场景
    Serializable:持久化,网络传输或者本地文件存储
    Parcelable:临时内存中传输,比如activity间的传输

Serializable使用注意事项

  • Serializable在是实现时需要设置serialVersionUID,作用是验证版本的一致性。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体类的serialVersionUID进行比较。如果相同说明是一致的,可以进行反序列化,否则会出现反序列化版本不一致的异常,即是InvalidCastException。
  • serialVersionUID两种显示的生成方式:
    1.默认1L,比如:private static final long serialVersionUID = 1L;
    2.根据类名、接口名、成员方法及属性等来生成一个64位的哈希字段,比如:private static final long serialVersionUID = xxxxL;
  • Seralizable无法序列化静态变量,使用transient修饰的对象也无法序列化。
  • 当父类实现序列化,子类自动实现序列化。

相关文章

  • 序列化-Serializable和Pracelable

    什么是序列化? 序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式(二进制字节流)...

  • Android序列化

    Serializable Serializable的序列化和反序列化 关于 versionUID 用来辅助 序列化...

  • 容易理解的技术文章

    serializable Java 之 Serializable 序列化和反序列化的概念 static stati...

  • 2.3 IPC基础概念介绍(一)

    1. Serializable接口 定义User类,实现Serializable接口 序列化和反序列化 打印结果:...

  • JDK源码-序列化

    Serializable的定义 任何实现了Serializable接口的类,都能够被序列化和反序列化.Serial...

  • Java 序列化之 Externalizable

    相关文章: Java 序列化 之 Serializable JDK中除了提供 Serializable 序列化接口...

  • 春招笔记

    1. Parcelable和Serializable 俩者异同 1、Serializable在序列化的时候会产生...

  • 序列化和反序列化对象

    被序列化的对象需要实现Serializable接口例子: 序列化和反序列化操作 结果:

  • Java序列化

    Android序列化 目标 为什么序列化 序列化的定义 Serializable的使用和原理 Parcelable...

  • Android 共享内存的序列化过程

    Parcelable和Serializable 我们在开发过程中会用到序列化,有java的Serializable...

网友评论

      本文标题:序列化-Serializable和Pracelable

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