RMI中的對象傳遞

          對于RMI的遠程接口方法來說,傳入參數或返回值可以是任何類型,包括本地對象,遠程對象以及原始數據類型。更準確地說,任何類型的任何實體(可理解為類和對象的關系)都能被傳入或傳出遠程方法,只要該實體是以下類型的實例:原始數據類型,遠程對象,或者可串行化對象,即實現了接口java.io.Serializable。
          但是有些對象類型卻不滿足以上這些要求,因而不能被傳入或傳出。比如,線程或者文件描述符(還有inputstream,outputstream對象),因為封裝了僅僅存在于單一地址空間的信息,這樣便無法通過RMI傳遞。另外許多核心類,包括位于java.lang和java.util包下的類都是實現了Serializable接口的。
          怎樣傳遞參數和返回值的規則,介紹如下:
          1.遠程對象是引用傳遞。
          這個引用就是位于client端的stub,起著代理的作用,遠程對象實現了的遠程接口,作為代理的stub也全部實現;
          2.本地對象是值傳遞,即拷貝。
          缺省的話,所有的屬性都會被拷貝,除了標示為static或transient的屬性之外。這種缺省行為是可以在類里被覆蓋的。
          遠程對象的引用傳遞意味著對遠程方法調用的對象的狀態所作的任何改變都將反映到該stub所對應的遠程對象上去。當一個遠程對象被傳遞時,接受者只能看到遠程接口里定義的方法,而不能看到遠程對象里定義的本地方法。
          本地對象的值傳遞意味著任何對接受者的對象的狀態的改變都不會影響到發送者那里的對象,反之亦然。

          posted on 2011-05-26 23:51 koradji 閱讀(1140) 評論(0)  編輯  收藏 所屬分類: java

          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導航

          統計

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          db2

          dos

          Groovy

          Hibernate

          java

          WAS

          web application

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 固始县| 桦南县| 利辛县| 康平县| 鹤壁市| 腾冲县| 瓮安县| 咸阳市| 柞水县| 蓬溪县| 宜丰县| 昌图县| 宕昌县| 吉隆县| 临海市| 鹤岗市| 岐山县| 阜阳市| 德昌县| 延吉市| 七台河市| 嘉峪关市| 武冈市| 甘洛县| 霸州市| 青浦区| 津市市| 纳雍县| 搜索| 台安县| 长丰县| 嘉祥县| 孝感市| 兴义市| 江北区| 宜君县| 义马市| 临猗县| 临泽县| 鄢陵县| 调兵山市|