笔记:Android中的序列化方案

2021-03-11  本文已影响0人  盐海里的鱼

什么是序列化

常用的序列化方案

image.png
  1. 反序列化后的对象,需要调用构造函数重新构造吗
    答:不需要 直接由Object强转

  2. 序列前的对象与序列化后的对象是什么关系?是("=="还是equal?是浅复制还是
    深复制?)
    答:深复制,枚举类型除外 枚举类型只会存储他的name在反序列化时通过valueOf找到对应的枚举

  3. Android里面为什么要设计出Bundle而不是直接用Map结构
    答:bundle 内部适用的是 ArrayMap, ArrayMap 相比 Hashmap 的优点是, 扩容方便, 每次扩容是原容量的一半, 在[百量] 级别, 通过二分法查找 key 和 value (ArrayMap 有两个数组, 一个存放 key 的 hashcode, 一个存放 key+value 的 Entry) 的效率要比 hashmap 快很多, 由于在内存中或者 Android 内部传输中一般数据量较小, 因此用 bundle 更为合适

4.Android 中 intent/bundle 的通信原理以及大小限制?
答: Android 中的 bundle 实现了 parcelable 的序列化接口, 目的是为了在进程间进行通讯, 不同的进程共享一片固定大 小的内存, parcelable 利用 parcel 对象的 read/write 方法, 对需要传递的数据进行内存读写, 因此这一块共享内存不能 过大

上一篇 下一篇

猜你喜欢

热点阅读