成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

移動(dòng)開(kāi)發(fā):序列化與反序列化Parcelable和Serializable淺析

2022-07-21    分類: 網(wǎng)站建設(shè)

在日常的應(yīng)用開(kāi)發(fā)中,我們可能需要讓某些對(duì)象離開(kāi)內(nèi)存空間,存儲(chǔ)到物理磁盤,以便長(zhǎng)期保存,同時(shí)也能減少對(duì)內(nèi)存的壓力,而在需要時(shí)再將其從磁盤讀取到內(nèi)存,比如將某個(gè)特定的對(duì)象保存到文件中,隔一段時(shí)間后再把它讀取到內(nèi)存中使用,那么該對(duì)象就需要實(shí)現(xiàn)序列化操作,在Java中可以使用Serializable接口實(shí)現(xiàn)對(duì)象的序列化,而在android中既可以使用Serializable接口實(shí)現(xiàn)對(duì)象序列化也可以使用parcelable接口實(shí)現(xiàn)對(duì)象序列化,但是在內(nèi)存操作時(shí)更傾向于實(shí)現(xiàn)parcelable接口,這樣會(huì)使用傳輸效率更高效。接下來(lái)我們將分別詳細(xì)地介紹這樣兩種序列化操作。

了解序列化與反序列

序列化

由于存在于內(nèi)存中的對(duì)象都是暫時(shí)的,無(wú)法長(zhǎng)期駐存,為了把對(duì)象的狀態(tài)保持下來(lái),這時(shí)需要把對(duì)象寫入到磁盤或者其他介質(zhì)中,這個(gè)過(guò)程就叫做序列化。

反序列化

反序列化恰恰是序列化的反向操作,也就是說(shuō),把已存在在磁盤或者其他介質(zhì)中的對(duì)象,反序列化(讀?。┑絻?nèi)存中,以便后續(xù)操作,而這個(gè)過(guò)程就叫做反序列化。

概括性來(lái)說(shuō)序列化是指將對(duì)象實(shí)例的狀態(tài)存儲(chǔ)到存儲(chǔ)媒體(磁盤或者其他介質(zhì))的過(guò)程。在此過(guò)程中,先將對(duì)象的公共字段和私有字段以及類的名稱(包括類所在的程序集)轉(zhuǎn)換為字節(jié)流,然后再把字節(jié)流寫入數(shù)據(jù)流。在隨后對(duì)對(duì)象進(jìn)行反序列化時(shí),將創(chuàng)建出與原對(duì)象完全相同的副本。

實(shí)現(xiàn)序列化的必要條件

一個(gè)對(duì)象要實(shí)現(xiàn)序列化操作,該類就必須實(shí)現(xiàn)了Serializable接口或者parcelable接口,其中Serializable接口是在java中的序列化抽象類,而parcelable接口則是android中特有的序列化接口,在某些情況下,parcelable接口實(shí)現(xiàn)的序列化更為高效,關(guān)于它們的實(shí)現(xiàn)案例我們后續(xù)會(huì)分析,這里只要清楚知道實(shí)現(xiàn)序列化操作時(shí)必須實(shí)現(xiàn)Serializable接口或者parcelable接口之一即可。

序列化的應(yīng)用情景

主要有以下情況(但不限于以下情況)

1)內(nèi)存中的對(duì)象寫入到硬盤;

2)用套接字在網(wǎng)絡(luò)上傳送對(duì)象;

3)通過(guò)RMI(RemoteMethodInvoke遠(yuǎn)程方法調(diào)用)傳輸對(duì)象;

Serializable

Serializable是java提供的一個(gè)序列化接口,它是一個(gè)空接口,專門為對(duì)象提供標(biāo)準(zhǔn)的序列化和反序列化操作,使用Serializable實(shí)現(xiàn)類的序列化比較簡(jiǎn)單,只要在類聲明中實(shí)現(xiàn)Serializable接口即可,同時(shí)強(qiáng)烈建議聲明序列化標(biāo)識(shí)。

parcelable

鑒于Serializable在內(nèi)存序列化上開(kāi)銷比較大,而內(nèi)存資源屬于android系統(tǒng)中的稀有資源(android系統(tǒng)分配給每個(gè)應(yīng)用的內(nèi)存開(kāi)銷都是有限的),為此android中提供了parcelable接口來(lái)實(shí)現(xiàn)序列化操作,parcelable的性能比Serializable好,在內(nèi)存開(kāi)銷方面較小,所以在內(nèi)存間數(shù)據(jù)傳輸時(shí)推薦使用parcelable,如通過(guò)Intent在activity間傳輸數(shù)據(jù),而parcelable的缺點(diǎn)就使用起來(lái)比較麻煩。

文章題目:移動(dòng)開(kāi)發(fā):序列化與反序列化Parcelable和Serializable淺析
標(biāo)題鏈接:http://jinyejixie.com/news/181335.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、做網(wǎng)站網(wǎng)站導(dǎo)航、響應(yīng)式網(wǎng)站、自適應(yīng)網(wǎng)站網(wǎng)站維護(hù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)
赫章县| 汉沽区| 德昌县| 开化县| 西峡县| 宁强县| 久治县| 兴业县| 烟台市| 舒兰市| 凤山市| 上思县| 双鸭山市| 衡南县| 崇义县| 海淀区| 北流市| 安平县| 樟树市| 昭苏县| 故城县| 海安县| 禹城市| 江川县| 志丹县| 普兰店市| 泰和县| 莒南县| 大丰市| 来安县| 石门县| 吉水县| 宿松县| 宁河县| 弥渡县| 松滋市| 许昌县| 绥滨县| 昆明市| 罗源县| 宜良县|