程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> 對 Serializable和Parcelable理解,parcelable傳遞對象

對 Serializable和Parcelable理解,parcelable傳遞對象

編輯:JAVA綜合教程

對 Serializable和Parcelable理解,parcelable傳遞對象


1、首先他們兩個接口都是為了實現對象的序列化,使之可以傳遞,所謂序列化就是將對象信息裝換成可以存儲的介質的過程。

2、Serializable是jdk所提供的序列化接口,該接口存在於io包下,可想用於輸入輸出,使用非常簡單,只要讓你的類實現此接口就ok了;可以使用transient關鍵字修飾你不想序列化的屬性。

3、Parcelable是sdk所提供的序列化接口,使用較上者麻煩,實現此接口後,需要重寫writeToParcel方法,將需要序列化的屬性寫入Parcel中;

然後還需要CERATOR靜態成員屬相,以便從parcel中取出數據。如下

 public static final Creator<Pen> CREATOR = new Creator<Pen>() {
        @Override
        public Pen createFromParcel(Parcel in) {
            return new Pen(in);
        }
        @Override
        public Pen[] newArray(int size) {
            return new Pen[size];
        }
    };
    @Override
    public int describeContents() {
        return 0;
    }
    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeString(color);
        dest.writeInt(size);
    }

 4、兩種都是用於支持序列化、反序列化話操作,兩者最大的區別在於存儲媒介的不同,Serializable使用IO讀寫存儲在硬盤上,而Parcelable是直接在內存中讀寫,很明顯內存的讀寫速度通常大於IO讀寫,所以在Android中通常優先選擇Parcelable。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved