Serializable 和 Parcelable 區(qū)別

一饼疙、簡介:

android 中自定義的對象序列化的問題有兩個選擇一個是Parcelable,另外一個是Serializable。

序列化原因:
1.永久性保存對象忱屑,保存對象的字節(jié)序列到本地文件中波丰;
2.通過序列化對象在網(wǎng)絡(luò)中傳遞對象壳坪;
3.通過序列化在進程間傳遞對象。

二掰烟、序列化爽蝴、反序列化是什么?
(1) 名詞解釋
對象的序列化 : 把Java對象轉(zhuǎn)換為字節(jié)序列并存儲至一個儲存媒介的過程纫骑。對象的反序列化:把字節(jié)序列恢復(fù)為Java對象的過程蝎亚。

(2) 序列化詳細(xì)解釋
對象的序列化涉及三個點關(guān)鍵點:Java對象、字節(jié)序列先馆、存儲发框。

  1. Java對象的組成?Java對象包含變量與方法煤墙。但是序列與反序列化僅處理Java變量而不處理方法梅惯,序列與反序列化僅對數(shù)據(jù)進行處理宪拥。

  2. 什么是字符序列?字符序列是兩個詞铣减,字符是在計算機和電信領(lǐng)域中她君,字符(Character)是一個信息單位。數(shù)學(xué)上葫哗,序列是被排成一列的對象(或事件)缔刹。《字符-維基百科》 劣针, 《序列-維基百科》 說白了就是連續(xù)排列的多個字符的集合校镐。類似于1A165613246546

  3. 存儲字符序列需要保存到一個地方,可以是硬盤也可以是內(nèi)存酿秸。簡單說法是:序列化把當(dāng)前對象信息保存下來灭翔。反序列化剛好相反的操作。

三辣苏、Java對象與Java對象序列化的區(qū)別肝箱?

Java對象存在的前提必須在JVM運行期間存在,如果想在JVM非運行的情況下或者在其他機器JVM上獲取指定Java對象稀蟋,在現(xiàn)有Java對象的機制下都不可能完成煌张。

與Java對象不同的是,如果對Java對象執(zhí)行序列化操作退客,因為原理是把Java對象信息保存到存儲媒介骏融,所以可以在以上Java對象不可能存在的兩種情況下依然可以使用Java對象。

四萌狂、為什么要使用序列化档玻、反序列化?
根據(jù)以上對序列化茫藏、反序列化的理解误趴,這個疑問可以翻譯成,為什么需要把對象信息保存到存儲媒介中并之后讀取出來务傲?

因為開發(fā)中有在JVM非運行的情況下或者在其他機器JVM上獲取指定Java對象的需求凉当。

五、Android中Serializable與Parcelable區(qū)別售葡?

1看杭、兩種都是用于支持序列化、反序列化話操作挟伙,兩者最大的區(qū)別在于存儲媒介的不同楼雹,Serializable使用IO讀寫存儲在硬盤上,而Parcelable是直接在內(nèi)存中讀寫,很明顯內(nèi)存的讀寫速度通常大于IO讀寫烘豹,所以在Android中通常優(yōu)先選擇Parcelable瓜贾。

2、至于選取哪種可參考下面的原則:
1.)在使用內(nèi)存的時候携悯,Parcelable 類比Serializable性能高,所以推薦使用Parcelable類筷笨。

2.)Serializable在序列化的時候會產(chǎn)生大量的臨時變量憔鬼,從而引起頻繁的GC。

3.)Parcelable不能使用在要將數(shù)據(jù)存儲在磁盤上的情況胃夏,因為Parcelable不能很好的保證數(shù)據(jù)的持續(xù)性在外界有變化的情況下轴或。盡管Serializable效率低點, 也不提倡用仰禀,但在這種情況下照雁,還是建議你用Serializable 。

六答恶、實現(xiàn):
1饺蚊、 Serializable 的實現(xiàn),只需要繼承 implements Serializable 即可悬嗓。這只是給對象打了一個標(biāo)記污呼,系統(tǒng)會自動將其序列化。

2包竹、 Parcelabel 的實現(xiàn)燕酷,需要在類中添加一個靜態(tài)成員變量 CREATOR,這個變量需要繼承 Parcelable.Creator 接口周瞎。

public class MyParcelable implements Parcelable {
     private int mData;

     public int describeContents() {
         return 0;
     }

     public void writeToParcel(Parcel out, int flags) {
         out.writeInt(mData);
     }

     public static final Parcelable.Creator<MyParcelable> CREATOR
             = new Parcelable.Creator<MyParcelable>() {
         public MyParcelable createFromParcel(Parcel in) {
             return new MyParcelable(in);
         }

         public MyParcelable[] newArray(int size) {
             return new MyParcelable[size];
         }
     };
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末苗缩,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子声诸,更是在濱河造成了極大的恐慌酱讶,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件双絮,死亡現(xiàn)場離奇詭異浴麻,居然都是意外死亡,警方通過查閱死者的電腦和手機囤攀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進店門软免,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人焚挠,你說我怎么就攤上這事膏萧。” “怎么了?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵榛泛,是天一觀的道長蝌蹂。 經(jīng)常有香客問我,道長曹锨,這世上最難降的妖魔是什么孤个? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮沛简,結(jié)果婚禮上齐鲤,老公的妹妹穿的比我還像新娘。我一直安慰自己椒楣,他們只是感情好给郊,可當(dāng)我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著捧灰,像睡著了一般淆九。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上毛俏,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天炭庙,我揣著相機與錄音,去河邊找鬼拧抖。 笑死煤搜,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的唧席。 我是一名探鬼主播擦盾,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼淌哟!你這毒婦竟也來了迹卢?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤徒仓,失蹤者是張志新(化名)和其女友劉穎腐碱,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體掉弛,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡症见,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了殃饿。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谋作。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖乎芳,靈堂內(nèi)的尸體忽然破棺而出遵蚜,到底是詐尸還是另有隱情帖池,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布吭净,位于F島的核電站睡汹,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏寂殉。R本人自食惡果不足惜囚巴,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望不撑。 院中可真熱鬧文兢,春花似錦、人聲如沸焕檬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽实愚。三九已至,卻和暖如春兔辅,著一層夾襖步出監(jiān)牢的瞬間腊敲,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工维苔, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留碰辅,地道東北人。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓介时,卻偏偏與公主長得像没宾,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子沸柔,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,543評論 2 349

推薦閱讀更多精彩內(nèi)容

  • JAVA序列化機制的深入研究 對象序列化的最主要的用處就是在傳遞,和保存對象(object)的時候,保證對象的完整...
    時待吾閱讀 10,842評論 0 24
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法循衰,類相關(guān)的語法,內(nèi)部類的語法褐澎,繼承相關(guān)的語法会钝,異常的語法,線程的語...
    子非魚_t_閱讀 31,598評論 18 399
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理工三,服務(wù)發(fā)現(xiàn)迁酸,斷路器,智...
    卡卡羅2017閱讀 134,633評論 18 139
  • 和靳胖冷戰(zhàn)將近三周 最后還是我妥協(xié) 我倆有各自的生氣的點,我嫌她和齊某和好后對別人的視若空氣,明知道我生氣卻依舊和...
    賴子陳閱讀 203評論 0 0
  • 最近俭正,樂視吸引了廣大國民的眼睛奸鬓,賈總揮一揮手,走了段审,去了米國全蝶,不知還會否回來闹蒜? 就連那個小目標(biāo)的王健林總,也開始賣...
    煩人的昵稱閱讀 400評論 0 0