序列化的两种方式,一种是
java
提供的Serilizable
和Android
自身提供的Parcelable
.
基本使用
1 | public class Person implements Serializable { |
区别
- 存储媒介的不同
存储媒介 | 特点 | |
---|---|---|
Serializable | 使用的IO读写存储在硬盘上,序列化过程使用了反射技术,并且期间产生临时对象(?),从而引起频繁的GC。 | 代码少 |
Parcelable | 使用的IO读写在内存中,内存的读写速度肯定优于硬盘读写速度,所以Parcelable的性能上优于Serializable. | 代码写起来比较多 |
具体到开发中用哪个,个人觉着要考虑要传递对象的大小,如果对象比较大,手机内存比较小,可能会报出 TransactionTooLargeException: The Binder transaction failed because it was too large .
此时就要考虑使用 Parcelable
了,如果对象不是特别大,使用 Serializable
还是挺合适的,毕竟实现比较简单。