JAVA 序列化
7449 opened this issue · 1 comments
7449 commented
Java中,有两种方式可以实现序列化,既可以实现Serializable接口,也可以实现Parcelable接口。然而,
在Android中,我们不应该使用Serializable接口。因为Serializable接口使用了反射机制,这个过程相对缓
慢,而且往往会产生出很多临时对象,这样可能会触发垃圾回收器频繁地进行垃圾回收。相比而言,
Parcelable接口比Serializable接口效率更高,性能方面要高出10x多倍。
-
修改如下
Java中,只有一种方式可以实现序列化,只需要实现Serializable接口。在
Android中,还有另外一种实现序列化的方式,实现Parcelable,这个是android独有的一种序列化方
方式,相比较Serializable,Parcelable需要提供大量的模板代码,较为繁琐,但是效率比Serializable高出不少,因为Serializable实现的序列化利用反射,可能会进行频繁的IO操作,所以消耗比较大。而Parcelable则是在内存中进行序列化
所以这里推荐的是:
内存序列化优先选择Parcelable
存储到设备优先选择Serializable(这里推荐使用json方式加密保存在本地,比较简单)
jeanboydev commented
@7449 已采纳,感谢您的建议!