成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

Java接口為什么不支持序列化?系統(tǒng)交互中,為什么不可以通過接口傳輸數(shù)據(jù)?

網(wǎng)友解答: 這是一個(gè)非常好的問題,Java序列化是Java語言中一個(gè)非常重要的內(nèi)容。很多Java初學(xué)者都搞不清楚Java序列化的作用和意義,要了解Java為什么不序列化接口,首先要明白一

網(wǎng)友解答:

這是一個(gè)非常好的問題,Java序列化是Java語言中一個(gè)非常重要的內(nèi)容。

很多Java初學(xué)者都搞不清楚Java序列化的作用和意義,要了解Java為什么不序列化接口,首先要明白一件事情,那就是為什么要序列化?序列化的目的是完成對(duì)象的存儲(chǔ)和傳遞,傳遞往往是對(duì)象序列化最常見的目的。

下面,我們?cè)倏匆幌翵ava接口的概念。Java中的接口還有一個(gè)名字,那就是“全抽象”,所以Java中的接口本身并不存在序列化的基礎(chǔ),因?yàn)榻涌诒旧硎浅橄蟮摹T谙到y(tǒng)的交互中,接口恰恰起到了關(guān)鍵的作用,那就是為傳遞定義“標(biāo)準(zhǔn)”。

描述Java序列化一個(gè)比較常見的方式是結(jié)合RMI(一個(gè)比較傳統(tǒng)的Java技術(shù),或者叫老技術(shù))來完成,因?yàn)镽MI既能夠描述序列化的過程,也能夠描述數(shù)據(jù)傳遞的過程,同時(shí)凸顯了接口的重要性,下面我們看一個(gè)例子:

首先定義一個(gè)實(shí)體類Student,按照J(rèn)ava序列化的要求,Student需要實(shí)現(xiàn)“聲明式接口”Serializable,之所為稱之為“聲明式接口”,是因?yàn)榇私涌谥袥]有定義任何方法。為了演示的清晰性,類中并沒有定義太多的屬性和方法。接著就需要定義遠(yuǎn)程接口了:

注意遠(yuǎn)程接口的定義擴(kuò)展了Remote接口,這里面需要注意的是,java中接口可以同時(shí)擴(kuò)展多個(gè)接口,也就是說定義接口時(shí),extends后面可以有多個(gè)接口。接著定義服務(wù)類:

服務(wù)類完成了遠(yuǎn)程方法的實(shí)現(xiàn),并把服務(wù)注冊(cè)到了目錄服務(wù)器上,這樣就可以接收調(diào)用請(qǐng)求了。下面,看一下客戶端的定義:

通過這個(gè)例子比較完整的呈現(xiàn)了Java序列化在網(wǎng)絡(luò)交互過程中的作用,具體的writeObject和readObject的過程是被隱含實(shí)現(xiàn)的。

我使用Java語言多年,我會(huì)陸續(xù)在酷米寫一些關(guān)于軟件開發(fā)方面的文章,感興趣的朋友可以關(guān)注我的酷米號(hào),相信一定會(huì)有所收獲。

如果有Java或其他編程語言方面的問題,也可以咨詢我。

謝謝!

標(biāo)簽: