回覆列表
  • 1 # IT人劉俊明

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

    很多Java初學者都搞不清楚Java序列化的作用和意義,要了解Java為什麼不序列化介面,首先要明白一件事情,那就是為什麼要序列化?序列化的目的是完成物件的儲存和傳遞,傳遞往往是物件序列化最常見的目的。

    下面,我們再看一下Java介面的概念。Java中的介面還有一個名字,那就是“全抽象”,所以Java中的介面本身並不存在序列化的基礎,因為介面本身是抽象的。在系統的互動中,介面恰恰起到了關鍵的作用,那就是為傳遞定義“標準”。

    描述Java序列化一個比較常見的方式是結合RMI(一個比較傳統的Java技術,或者叫老技術)來完成,因為RMI既能夠描述序列化的過程,也能夠描述資料傳遞的過程,同時凸顯了介面的重要性,下面我們看一個例子:

    首先定義一個實體類Student,按照Java序列化的要求,Student需要實現“宣告式介面”Serializable,之所為稱之為“宣告式介面”,是因為此介面中沒有定義任何方法。為了演示的清晰性,類中並沒有定義太多的屬性和方法。接著就需要定義遠端介面了:

    注意遠端介面的定義擴充套件了Remote介面,這裡面需要注意的是,java中介面可以同時擴充套件多個介面,也就是說定義介面時,extends後面可以有多個介面。接著定義服務類:

    服務類完成了遠端方法的實現,並把服務註冊到了目錄伺服器上,這樣就可以接收呼叫請求了。下面,看一下客戶端的定義:

    透過這個例子比較完整的呈現了Java序列化在網路互動過程中的作用,具體的writeObject和readObject的過程是被隱含實現的。

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

  • 2 # SundaySeventeen

    什麼需要序列化?就好像安卓,你換個頁面,上一個頁面當然要儲存資料。這時候需要序列化。你的變數都在記憶體中,為什麼還需要序列化?傳輸資料都和具體包實現的功能有關,網路傳輸資料用io,程序之間資料傳輸用程序的相關包,和介面不介面有什麼關係?你完全可以做一個類用來資料傳輸,然後定義一個介面,讓這個類實現這個介面,接口裡定義類中你需要傳輸資料的方法,這樣你就可以透過介面的例項和方法來傳輸資料。

  • 中秋節和大豐收的關聯?
  • 關於釣魚的好詞好句有哪些?