Parcelable和Serializable的差别

     之前对Parcelable 的使用进行过了解,后面看到一些android 源代码中也很多用到Serializable,今天有对这两个进行了一些对比,加深自己对这个序列化的认识。

        二者都是对数据的一些序列化,那到底什么时候会用大序列化这个操作呢。

       1.永久保存对象,把对象保存到本地文件中。

       2.通过序列化,可以再网络中传输对象

       3.还有就是进程线程间的对象的传递作用。


     Parcelable 和 Serializable 两者都是序列化接口,Parcelable 是android上特有的一套接口,而Serializable 是Java上的接口,前者之前对其实现做了讲解,后者其实实现起来非常简单,只要使用了这个接口,就可以了,不用多余的实现其他方法,其他的就是交个系统区处理了,也因为这个原因,Serializable的效率更加低。

     下面是二者使用的不一样:

      1.在使用内存的时候,Parcelable 类比Serializable性能高,所以推荐使用Parcelable类。
      2.Serializable在序列化的时候会产生大量的临时变量,从而引起频繁的GC。
      3.Parcelable不能使用在要将数据存储在磁盘上的情况,因为Parcelable不能很好的保证数据的持续性在外界有变化的情况下。尽管Serializable效率低点, 也不提倡用,但在这种情况下,还是建议你用Serializable 。

    

    

         public abstract class Base implements Serializable {

                 //只需要定义一个序列ID就可以了

                  public final static String NODE_ROOT = "china";

           }


       我们定义给序列ID 为的就是能够让你这个对象有唯一的标识!就是说序列化和反序列话后要保持版本一致!

你可能感兴趣的:(Android,技术)