什么是序列化
- 由于存在内存中的对象都是短暂的,为了把对象的状态保存下来,就需要把对象写到磁盘或者其他介质中
- 序列化: 内存对象->磁盘或其他介质
- 反序列化:磁盘或其他介质->内存对象
在Android中 一个对象要序列化就要实现Parcelable接口或者Serializable接口
回答
从两方面回答 效率和实现
- Serializable 实现接口即可,编译期会生成一个Long型的序列化UID(作用是反序列化时判断UID是否相同,相同才能反序列化)
优点:实现简单 缺点:开销大 - Parcelable 适用麻烦,需要实现writeParcel 将对象映射成parcel对象,然后通过createFormParcel将parcel对象映射成我们的对象
优点:性能上比Serializable好,因为内存开销比前者小