1. 什么是RMI ?
    Java远程方法调用(RMI)是一个Java API,它执行的面向对象的等价远程过程调用(RPC)的方法,包括了直接传输序列化的Java类和分布式垃圾收集的支持。 远程方法调用(RMI),也可以看作是一个远程运行的对象上激活的方法的过程。RMI提供位置透明性,因为用户认为一个方法是在本地运行的对象上执行。 RMI Tips here.
  2. 什么是RMI的体系结构的基本原理?
    RMI的架构最重要的原则是将行为的定义和行为的实施分别对待。 RMI允许定义的行为和实现行为保持独立,并在独立的JVM中运行的代码。
  3. RMI的体系结构层是什么?
    RMI的结构主要分为以下几层:
    桩(Stub)和框架(Skeleton)层:该层位于开发者视图的下面。该层是负责拦截客户端请求接口的方法并重定向这些请求到远程RMI服务上。
    远程引用层:架构的第二层是处理从客户端到服务器的远程对象引用的解析。该层解析并管理从客户端到远程服务对象的引用。该连接是一对一(单播)连接的。
    传输层:该层主要负责连接参与服务的两个JVM。它基于通过网络连接的机子的TCP/IP,提供了基本的连通性,以及一些防火墙的渗透策略。
  4. 在RMI中远程接口的作用是什么?
    远程接口用于识别那些不是来自本地机子接口但可以被调用的方法。所有对象都是必须直接或间接实现该接口的远程对象。实现该远程接口之前应该声明其远程接口,为每个远程对象定义构造方法,并在所有远程接口中为每个远程方法提供实现。
  5. java.rmi.Naming 类扮演的角色 ?
    java.rmi.Naming类提供了存储和获取已注册的远程对象. Naming类中的每个方法都需要一个URL格式的String作为参数的名称.
  6. RMI中的绑定是什么意思 ?
    绑定是关联或注册一个远程对象的名字的过程, 这个名字可以在以后用到, 用于查找与它绑定的远程对象. 远程对象可以通过Naming类中的bind或rebind方法与一个名字相关联.
  7. Naming 类中的bind与rebind方法的区别 ?
    bind方法的绑定主要用于将特定的名字绑定到一个远程对象, 但rebind方法的绑定用于将特定的名字重新绑定到一个新的远程对象. 如果这个名字已经绑定过了, 使用rebind这个绑定会被替换.
  8. 运行RMI 程序的步骤?
    为了使RMI程序正常运行需要以下步骤:
    编译所有源文件.
    用rmic生成stub.
    启动rmiregistry.
    启动RMIServer.
    运行客户端程序.
  9. RMI中stub的角色 ?
    远程对象的stub作为远程对象在本地程序中的表示或代理. 调用者调用本地stub的一个方法, 这个方法会在远程对象上执行.当一个stub的方法被调用时, 它经历了以下步骤:
    初始化与运行远程对象的远程JVM的连接.
    将参数编码并传递给远程JVM.
    等待方法调用与执行的结果.
    解码返回值或异常(如果执行失败).
    将返回值返回给调用者.
  10. 什么是DGC?它是如何工作的?
    DGC代表的是分布式垃圾收集。远程方法调用(RMI)使用的是DGC自动垃圾收集机制。由于RMI涉及到跨JVM的远程引用,垃圾回收就会相当困难。DGC使用相关的计数算法为远程对象提供自动存储管理。
  11. 在RMI中使用RMISecurityManager的目的是什么?
    在RMI应用程序中可以使用RMISecurityManager提供安全管理器来下载代码。如果安全管理器没有设置好,RMI的类加载器不会从远程端下载任何类。
  12. 解释编组和解组。
    当一个应用程序要通过网络来传送内存对象到另一台主机,或者保留它到存储器,内存表达法会将其转换到合适的格式。这个过程就叫做编组,而恢复操作就叫解组。
  13. 解释序列化和反序列化。
    Java提供了一个机制,是指一个对象可以被表示为字节序列,包括对象的数据,以及对象类型的信息和存储在对象中的数据类型。因此,序列化可以看做是平面化对象为了存储到磁盘中,方便后面读取和重新配置的一种方式。反序列化是一种从平面化状态到活跃状态的一种转换对象的逆过程。

Java知识整理——远程方法调用相关推荐

  1. java中使用rmi进行远程方法调用

    java中进行远程方法调用,能支持分布式计算.并且可以实现在server的修改,能反应到各个client. 假如server的ip是:192.168.11.2, server端的代码如下: /*** ...

  2. java分布式对象——远程方法中的参数和返回值+远程对象激活

    [0]README 1)本文文字描述转自 core java volume 2, 旨在学习 java分布式对象--远程方法中的参数和返回值+远程对象激活 的相关知识: [1]远程方法中的参数和返回值 ...

  3. XML-RPC远程方法调用

    一.简介 XML-RPC的全称是XML Remote Procedure Call,即XML远程方法调用. 它是一套允许运行在不同操作系统.不同环境的程序实现基于Internet过程调用的规范和一系列 ...

  4. Spring-整合JDBC-事务-远程方法调用RMI

    一.spring整合JDBC spring整合jdbc使用了模版方法设计模式 定义一套规范,固定流程不变,传入可变内容 1.Maven项目添加依赖 spring-context坐标依赖 mysql驱动 ...

  5. Java远程方法调用

    主要参考 http://www.kaixinwenda.com/article-yxc135-7690958.html http://bbs.chinaunix.net/thread-1179312- ...

  6. 面试之Java知识整理

    1.面向对象都有哪些特性 继承.封装.多态性.抽象 2.Java中实现多态的机制是什么? 继承与接口 3.Java中异常分为哪些种类 3.1按照异常需要处理的时机分为编译时异常(CheckedExce ...

  7. 系统间通信2:通信管理与远程方法调用RMI

    本文引用 : https://yinwj.blog.csdn.net/article/details/49120813 RMI : Remote Method Invocation,远程方法调用 RP ...

  8. RMI原理揭秘之远程方法调用

    接上:http://guojuanjun.blog.51cto.com/277646/1423392 这一次我们从学习RegistryImpl_Stub.java和RegistryImpl_Skel. ...

  9. [Dnode]基于Node.js给浏览器提供异步远程方法调用

    Dnode介绍 Dnode是一个提供异步双向远程方法调用的类库.网络socket和websocket风格的socket.io通信已经成为可能,所以系统的进程之间可以相互通信并且可以与运行在浏览器端的用 ...

最新文章

  1. 开发一次、多端覆盖的开源统一框架
  2. python 命令行参数-Python命令行参数处理
  3. [C#学习] DataAdapter.Fill()分页
  4. 求生欲强烈!HTC官方回应并未退出中国市场
  5. html字段值换行代码怎么写,HTML段落,换行,字符实体
  6. Graham-Scan小总结——toj2317 Wall
  7. php . 和..,?php?和??
  8. SCADA数采HAAS数控系统现场实操步骤
  9. 最全公司章程自由规定事项
  10. CGAL学习记录——点云密度计算
  11. 装配uwsgi和nginx rabbitMQ
  12. 键盘密码(Qwerty)——python解密
  13. C语言学习--01 认识数据类型
  14. 【C语言】求最小公倍数三种方法
  15. 计算机教案封面设计,四年级信息技术《精彩封面巧设计》教学设计
  16. 第一届广西英招杯部分WP
  17. 基于规则的中文分词 - NLP中文篇
  18. 解决thinphp里返回json时斜杆和中文被转义问题
  19. apache mima 过滤器
  20. 在高通410c开发板使用PyQt开发电动窗帘Demo(五)

热门文章

  1. android判断参数非空,Android Studio注释模板Live Templates参数获取不到为null的一些
  2. 利用WinPcap技术捕获数据包
  3. linux常见问题及其解决方案集锦
  4. C++学习路线和参考资料
  5. Kafka淘汰倒计时!这个新一代消息中间件,腾讯、华为都用疯了?
  6. TCP协议通讯流程(三次握手及四次挥手)
  7. 音视频技术开发周刊 | 160
  8. 音视频技术开发周刊 86期
  9. 数据结构与算法之快速排序
  10. 数据分析利器:XGBoost算法最佳解析