博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java RMI 源码总结(个人理解)
阅读量:6687 次
发布时间:2019-06-25

本文共 493 字,大约阅读时间需要 1 分钟。

hot3.png

明天早上详细写下两个过程:

1、初始化过程(服务器)

2、客户端调用过程(包括客户端流程、调用服务端流程、返回客户端流程)

50b2aecb8149c0045d293fe21525d9689b5.jpg

  • 当客户端通过RMI注册表找到一个远程接口的时候,所得到的其实是远程接口的一个动态代理对象。
  • 当客户端调用其中的方法的时候,方法的参数对象会在序列化之后,传输到服务器端。
  • 服务器端接收到之后,进行反序列化得到参数对象。
  • 并使用这些参数对象,在服务器端调用实际的方法。
  • 调用的返回值Java对象经过序列化之后,再发送回客户端。
  • 客户端再经过反序列化之后得到Java对象,返回给调用者。
  • 这中间的序列化过程对于使用者来说是透明的,由动态代理对象自动完成

除了序列化之外,RMI还使用了动态类加载技术

  • 当需要进行反序列化的时候,如果该对象的类定义在当前JVM中没有找到,RMI会尝试从远端下载所需的类文件定义
  • 可以在RMI程序启动的时候,通过JVM参数java.rmi.server.codebase来指定动态下载Java类文件的URL。 

具体执行笔记参看代码注释

  •    

转载于:https://my.oschina.net/u/3847203/blog/2877353

你可能感兴趣的文章
chrome扩展调试:background.html如何调试?
查看>>
关于嵌入式安全性的6个要点
查看>>
1月18日云栖精选夜读 | Euler 今日问世!国内首个工业级的图深度学习开源框架,阿里妈妈造 ...
查看>>
4月云栖社区最新技术活动预告
查看>>
我的JAVA面试经验(3年左右工作经验)
查看>>
大数据开发学习路线,如何快速成为大数据工程师?
查看>>
脚本填报表的条件查询
查看>>
好程序员web前端分享js技巧和js中一些常见的陷阱
查看>>
从一个开发的角度看负载均衡和LVS
查看>>
Spring Boot(12)——使用MongoDB
查看>>
c++基础(上) 听课流水账
查看>>
Observable
查看>>
k8s使用deployment升级
查看>>
PostgreSQL 动态更新 C 语言函数
查看>>
ionic3项目实战教程 - 第10讲 ionic3分类菜单设计(类似外卖)
查看>>
深度解析 | K8S API Server之入门须知
查看>>
LeanEngine 中使用 WebSocket
查看>>
如何利用百度长尾高指数词,提高网站百度权重
查看>>
震惊!这个控件绝对值得收藏。轻松实现圆角、文字描边、状态指示等效果
查看>>
迎双11十周年,OceanBase 2.0挑战新巅峰
查看>>