【18-Ⅰ】Head First Java 学习笔记

HeadFirst Java

本人有C语言基础,通过阅读Java廖雪峰网站,简单速成了java,但对其中一些入门概念有所疏漏,阅读本书以弥补。

第一章 Java入门
第二章 面向对象
第三章 变量
第四章 方法操作实例变量
第五章 程序实战
第六章 Java函数库
第七章 继承与多态
第八章 深入多态
第九章 构造器与垃圾收集器
第十章 数字与静态
第十一章 异常处理
第十二章 GUI(内部类)
第十三章 Swing
第十四章 保存对象
第十五章 网络与线程
第十六章 数据结构
第十七章 程序发布
第十八章 分布式计算


前言

上一章,介绍了组织、包装、部署java程序。具体学习了可执行的jar。通过jar工具将java程序打包JAR文件交给用户使用。还学习了Java Web Start,JWS,简言之,通过Web发布的可执行JAR。

所有类在同一计算机的同一JVM上的堆空间执行是最便捷的情形。但如安全情境下,只允许服务器程序存取数据库,而客户端程序则在用户计算机上执行。这需要RMI技术,实现Java的远程程序调用。同时,会简要学习Servlet、EJB、Jini技术,了解其如何运用RMI,最后我们创建一个服务端浏览器。
在这里插入图片描述

Remote Method Invocation

同一机器上JVM只会知道自有堆的引用,方法调用时,两个对象都是在同一个堆上。

JVM无法知道其他机器上JVM信息,不同机器上,程序的运行,JVM的调用不同,但功能是一样的
在这里插入图片描述
在这里插入图片描述

调用不同机器上对象的方法

在第十五章,我们知道可以通过Socket链接,从一台机器取得另一台机器的数据,那如果要调用另一个机器上JVM堆上对象的方法呢?

可以自定义通信协议,通过Socket将结果传回

但如果能直接获取引用就方便多了,不妨设计某种机制,使用Socekt的I/O表达意图(调用另一台机器对象的方法),实现远程调用对象,但又如同本机的方法调用——RMI。
在这里插入图片描述

RMI的设计

在这里插入图片描述

helper 的任务

中间桥梁的作用

Cilent helper 连接 Server,传送调用信息(方法名、参数)
Server helper 通过Socket 连接 Cilent helper,解析信息。Service对象调用方法后,其helper将返回值传回
Cilent看似调用远程对象,实际调用本地处理 Socket和串流细节的 代理 helper。
在这里插入图片描述

调用方法的过程

在这里插入图片描述

Java RMI

Java中,RMI已提供helper,使用RMI,无需编写网络的I/O程序,客户端调用远程方法,如同本机方法的调用。

与一般调用区别,本质仍是通过网络发出调用,那就存在抛出异常的风险(涉及Socket与串流)
helper会将调用转成远程,信息的传递与采用的协议有关:JRMP或IIOP
在这里插入图片描述

创建远程服务

简要概括为5个步骤,具体介绍在此图之后。
在这里插入图片描述

创建远程接口
在这里插入图片描述
实现远程接口
Remote是客户端调用的对象,是真正执行方法的类

前三步是设计具体的远程服务(Service),这里第四步执行前,其实必须先执行RMI registry,即后面的步骤4
步骤之所以在后面,只是代码设计的逻辑顺序,但实际执行,向rmi注册stub对象,就是先执行rmi registry。
在这里插入图片描述后续步骤
rmic的具体过程可另外搜索了解
在这里插入图片描述
完整实现代码如下
在这里插入图片描述

实现Remote后,客户端如何取得对应的stub对象

RMI registry

客户端需要stub对象 与 Skelton 对象 交换信息,解传回的序列化数据。
在这里插入图片描述在这里插入图片描述

思考:客户端如何取得stub的类呢?

stub类文件直接给用户
dynamic class downloading:为stub对象加上URL标记,使用HTTP的GET获取类文件,这需要Web服务器提供类文件。

小结

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/835959.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PyCharm粘贴失灵?一文教你快速恢复!(如何解决Pycharm无法粘贴的问题)

文章目录 💢 问题 💢🏡 演示环境 🏡💯 解决方案 💯⚓️ 相关链接 ⚓️💢 问题 💢 "为什么你的代码编辑器突然变得不听话了?"最近在使用pycharm的时候遇到了一个问题,就是在pycharm中无法使用粘贴功能,后面经过一番折腾得到了解决,现在将我的解决…

scanf留下的那一片云彩

【题目描述】 给出一个由O和X组成的串(长度为1~80),统计得分。每个O的得分为目前连续出现的O的个数,X的得分为0。例如,OOXXOXXOOO的得分为1200100123。 输入第一行表示有n个字符串,后续是n行字…

自然资源-城镇开发边界内详细规划编制技术指南解读

自然资源-城镇开发边界内详细规划编制技术指南解读

Xilinx 千兆以太网TEMAC IP核 AXI4-Lite接口信号

在AX4总线标准中,AXI4-Lite主要由向她址映射型通信。TEMAC的管理法口采用AXI4-Lite标准接口,TEMAC核的AX14-Lite接口信号如表1所示,根据AX14-Lite标准,接口角色分为主接口(Maser Interface)和从接口(Slave Interface)。主接口为通…

收放卷伺服控制系统详细算法介绍(电子齿轮+张力PID卷绕轴控制功能块)

收放卷控制系统涉及的内容非常多,这里我们介绍全伺服系统利用电子齿轮指令实现主从轴的比例随动速度控制,收放卷控制算法介绍常用链接如下 1、收放卷+排线控制 收放卷+排线控制系统框图-CSDN博客文章浏览阅读24次。1、收放卷前馈量计算FC收放卷前馈量计算FC(CODESYS ST源代…

以太ETH链市值机器人

在数字资产交易市场的浪潮中,如何高效地管理市值、提升交易流动性并保障资金安全,一直是交易所和项目方关注的焦点。市值管理机器人飞机//aishutuyu以太ETH链市值机器人凭借其卓越的功能和强大的安全保障,为数字资产交易市场带来了革命性的变…

乡村旅游指标-最美乡村数、旅游示范县数、旅行社数、景区数、农家乐数(2007-2021年)

01、数据介绍 乡村旅游也是促进乡村经济发展的有效途径。通过发展乡村旅游,可以带动乡村相关产业的发展,提高乡村居民的收入,促进乡村的经济发展和社会进步。此外,乡村旅游还能促进城乡交流,推动城乡统筹发展。 数据…

【自动驾驶|毫米波雷达】非相参积累与恒虚警率检测

目录 非相参积累(Non-coherent combing) 1. 非相参积累是什么? 2. 为什么要进行非相参积累? 3. 如何实现非相参积累? 恒虚警率检测(CFAR:Constant False Alarm Rate) 1.CFAR概念引入 2. C…

几个Python处理Excel实际应用

下面介绍四个不同类型的Python处理Excel的经典应用案例,以帮助读者更好地掌握Python处理Excel的技能。 一、读取Excel数据 Python通过pandas库可以轻松地读取Excel数据。pandas库是一个专门用于数据分析和处理的库,它可以将Excel中的数据读取为DataFra…

【CTF MISC】XCTF GFSJ0513 pdf Writeup(PDF隐写)

pdf 菜猫给了菜狗一张图,说图下面什么都没有 解法 打开 pdf,只看见一张图片。 用浏览器搜索 flag,发现图片中间藏了一行字。 复制出来,得到 flag。 Flag flag{security_through_obscurity}声明 本博客上发布的所有关于网络攻…

vivado Kintex-7 配置存储器器件

Kintex-7 配置存储器器件 下表所示闪存器件支持通过 Vivado 软件对 Kintex -7 器件执行擦除、空白检查、编程和验证等配置操作。 本附录中的表格所列赛灵思系列非易失性存储器将不断保持更新 , 并支持通过 Vivado 软件对其中所列非易失性存储器 进行擦除、…

Apache Flume概述

Apache Flume概述 1.Flume定义 ​ Flume是cloudera(CDH版本的hadoop) 开发的一个分布式、可靠、高可用的海量日志收集系统。 它将各个服务器中的数据收集起来并送到指定的地方去,比如说送到HDFS、Hbase,简单来说flume就是收集日志的。 2.Flume基础架构…

用websocket实现一个简单的im聊天功能

WebSocket前后端建立以及使用-CSDN博客 经过我上一篇的基本理解websocket的建立以及使用后,这篇就写一个简单的demo 实现im聊天 首先就是后端代码,详细解释我都放到了每一句的代码解析了,文章最后我会说怎么运行流程 放置后端代码 packa…

xilinx xdma drive 传输8MB以上数据受限的问题

当传输超过8 MB数据时报错error code1359, #define XDMA_MAX_TRANSFER_SIZE (8UL * 1024UL * 1024UL) 可以修改成: #define XDMA_MAX_TRANSFER_SIZE (80UL * 1024UL * 1024UL) VS2019 WDK环境的搭建 先准备好VS WDK的驱动开发环境。需要下载VS、SD…

大数据交通行政执法监测系统

交通行政执法监测系统应用系统按照监测主体可分为:出租车交通违法监测,客车交通违法监测,货车、危化品车辆交通违法监测,非法营运车辆监测。功能模块涵盖:特征识别、档案查询、预警分析等。 (1)…

[算法][单调栈] [leetcode]316. 去除重复字母

去除重复字母 给你一个字符串 s ,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证 返回结果的 字典序最小(要求不能打乱其他字符的相对位置)。 字典序最小: 考虑字符串 a 与 字符串 b,如果字…

掌握未来搜索的钥匙:深入解析 Milvus 向量搜索引擎的终极指南!

在大数据时代,向量搜索技术愈发重要。作为一个开源的向量相似性搜索引擎,Milvus 提供了基于向量的相似性搜索功能,广泛应用于机器学习、人工智能等领域。本文将深入介绍 Milvus 的基本概念,包括其介绍、主要作用、使用方法及注意事…

SpringSecurity集成第三方登录

SpringSecurity 集成第三方登录 认证及自定义流程 首先我们提供一个实现了AbstractAuthenticationProcessingFilter抽象类的过滤器,用来代替UsernamePasswordAuthenticationFilter逻辑,然后提供一个AuthenticationProvider实现类代替AbstractUserDetail…

合专家模型 (MoE) 详解

本文转载自:混合专家模型 (MoE) 详解 https://huggingface.co/blog/zh/moe 英文版:https://huggingface.co/blog/moe 文章目录 一、简短总结二、什么是混合专家模型?三、混合专家模型简史四、什么是稀疏性?五、混合专家模型中令牌的负载均衡…

solidworks的进阶操作

目录 1 可以找别人的图 2 渲染 2.1 基本流程 2.2 相机和光源 3 装配图缩放 3.1 将装配图转换为零件 3.2 删除一些细节(可选) 3.3 缩放 4 3dmax文件转换为STL并对STL上色 5 文件是未来版本 1 可以找别人的图 有时需要出一些示意图,像是电脑桌子…