卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

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

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

網(wǎng)友解答:

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

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

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

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

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

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

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

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

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

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

謝謝!

標(biāo)簽: