java面(miàn)試題庫之RMI遠程方法調用

Time:2015/01/28 15:56:27   Click:

什麼(me)是RMI ?
Java遠程方法調用(RMI)是一個Java API,它執行的面(miàn)向(xiàng)對(duì)象的等價遠程過(guò)程調用(RPC)的方法,包括了直接傳輸序列化的Java類和分布式垃圾收集的支持。 遠程方法調用(RMI),也可以看作是一個遠程運行的對(duì)象上激活的方法的過(guò)程。RMI提供位置透明性,因爲用戶認爲一個方法是在本地運行的對(duì)象上執行。 RMI Tips here.

什麼(me)是RMI的體系結構的基本原理?
RMI的架構最重要的原則是將(jiāng)行爲的定義和行爲的實施分别對(duì)待。 RMI允許定義的行爲和實現行爲保持獨立,并在獨立的JVM中運行的代碼。



80. RMI的體系結構層是什麼(me)?
RMI的結構主要分爲以下幾層:

  • 樁(Stub)和框架(Skeleton)層:該層位于開(kāi)發(fā)者視圖的下面(miàn)。該層是負責攔截客戶端請求接口的方法并重定向(xiàng)這(zhè)些請求到遠程RMI服務上。

  • 遠程引用層:架構的第二層是處理從客戶端到服務器的遠程對(duì)象引用的解析。該層解析并管理從客戶端到遠程服務對(duì)象的引用。該連接是一對(duì)一(單播)連接的。

  • 傳輸層:該層主要負責連接參與服務的兩(liǎng)個JVM。它基于通過(guò)網絡連接的機子的TCP/IP,提供了基本的連通性,以及一些防火牆的滲透策略。

 在RMI中遠程接口的作用是什麼(me)?
遠程接口用于識别那些不是來自本地機子接口但可以被(bèi)調用的方法。所有對(duì)象都(dōu)是必須直接或間接實現該接口的遠程對(duì)象。實現該遠程接口之前應該聲明其遠程接口,爲每個遠程對(duì)象定義構造方法,并在所有遠程接口中爲每個遠程方法提供實現。



 java.rmi.Naming 類扮演的角色 ?

                    java.rmi.Naming類提供了存儲和獲取已注冊的遠程對(duì)象. Naming類中的每個方法都(dōu)需要一個URL格式的String作爲參數的名稱.

 RMI中的綁定是什麼(me)意思 ?

                    綁定是關聯或注冊一個遠程對(duì)象的名字的過(guò)程, 這(zhè)個名字可以在以後(hòu)用到, 用于查找與它綁定的遠程對(duì)象. 遠程對(duì)象可以通過(guò)Naming類中的bind或rebind方法與一個名字相關聯.

Naming 類中的bind與rebind方法的區别 ?

                    bind方法的綁定主要用于將(jiāng)特定的名字綁定到一個遠程對(duì)象, 但rebind方法的綁定用于將(jiāng)特定的名字重新綁定到一個新的遠程對(duì)象. 如果這(zhè)個名字已經(jīng)綁定過(guò)了, 使用rebind這(zhè)個綁定會(huì)被(bèi)替換.


 運行RMI 程序的步驟?

                    爲了使RMI程序正常運行需要以下步驟:

  •                             編譯所有源文件.

  •                             用rmic生成(chéng)stub.

  •                             啓動rmiregistry.

  •                             啓動RMIServer.

  •                             運行客戶端程序.

RMI中stub的角色 ?

                    遠程對(duì)象的stub作爲遠程對(duì)象在本地程序中的表示或代理. 調用者調用本地stub的一個方法, 這(zhè)個方法會(huì)在遠程對(duì)象上執行.當一個stub的方法被(bèi)調用時(shí), 它經(jīng)曆了以下步驟:

  •                             初始化與運行遠程對(duì)象的遠程JVM的連接.

  •                             將(jiāng)參數編碼并傳遞給遠程JVM.

  •                             等待方法調用與執行的結果.

  •                             解碼返回值或異常(如果執行失敗).

  •                             將(jiāng)返回值返回給調用者.


什麼(me)是DGC?它是如何工作的?
DGC代表的是分布式垃圾收集。遠程方法調用(RMI)使用的是DGC自動垃圾收集機制。由于RMI涉及到跨JVM的遠程引用,垃圾回收就(jiù)會(huì)相當困難。DGC使用相關的計數算法爲遠程對(duì)象提供自動存儲管理。

 在RMI中使用RMISecurityManager的目的是什麼(me)?
在RMI應用程序中可以使用RMISecurityManager提供安全管理器來下載代碼。如果安全管理器沒(méi)有設置好(hǎo),RMI的類加載器不會(huì)從遠程端下載任何類。

解釋編組和解組。
當一個應用程序要通過(guò)網絡來傳送内存對(duì)象到另一台主機,或者保留它到存儲器,内存表達法會(huì)將(jiāng)其轉換到合适的格式。這(zhè)個過(guò)程就(jiù)叫(jiào)做編組,而恢複操作就(jiù)叫(jiào)解組。


 解釋序列化和反序列化。
Java提供了一個機制,是指一個對(duì)象可以被(bèi)表示爲字節序列,包括對(duì)象的數據,以及對(duì)象類型的信息和存儲在對(duì)象中的數據類型。因此,序列化可以看做是平面(miàn)化對(duì)象爲了存儲到磁盤中,方便後(hòu)面(miàn)讀取和重新配置的一種(zhǒng)方式。反序列化是一種(zhǒng)從平面(miàn)化狀态到活躍狀态的一種(zhǒng)轉換對(duì)象的逆過(guò)程。

TAG
TOP

錦江區聚格樂享網絡工作室@2012 版權所有
蜀ICP備12016524号-2

立即咨詢
成(chéng)都(dōu)網站建設,成(chéng)都(dōu)做網站,錦江區聚格樂享網絡工作室
40f13d50b73e104f832ed1b719ae6935