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

news2024/11/17 17:49:22

HeadFirst Java

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

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


前言

上一小节,学习了RMI技术,5个步骤实现Java的远程服务(对象),以及客户端如何使用远程服务(调用Service对象的方法)。
这一节学习Servlet、EJB、Jini技术,了解其如何运用RMI,最后我们创建一个服务端浏览器。
之后该书就只剩下附录部分了,也算是阅读结束了,后续的学习打算找些OS与计网的经典书籍看看吧。

事实上,本书的技术都比较老,分布式计算的相关技术栈更新迭代,当然简单了解最开始的技术也是有必要的。

Servlet

Servlet 是 HTTP Web服务器上运行的Java程序

用户通过浏览器 与网页交互,请求会送给网页的服务器。服务器会执行Servlet上与用户请求相关的程序代码。
J2EE技术混合servlet与EJB,前者为后者用户,前者通过RMI与EJB通信
在这里插入图片描述

创建并执行Servlet

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

要点,以及JSP与Servlet比较

在这里插入图片描述

Enterprise JavaBean

大型企业级应用,需要交易管理、大量并发处理等功能,即需要一个企业级应用服务器

即J2EE服务器,它包括Web服务器与EJB服务器
EJB 使用RMI基础上扩展了功能,形象地说是打了类固醇的RMI,我们不会单独使用RMI进行大型网站的服务。
EJB 作用于RMI调用与服务层之间
在这里插入图片描述

Jini

Jini同样使用RMI,多的关键功能:

  1. adaptive discovery 自适应探索
  2. self-healing networks 自恢复网络

RMI技术下,客户端需要取得远程服务的地址与名称(RMI registry在此)
Jini只需要找到 服务所实现的接口,具体的方式是有一个查询服务对象帮助网络上的机器查找相关服务。而具体的服务会向查询服务对象注册并发送序列化对象(所实现的接口服务)
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

通用服务浏览器

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

具体代码P638-P648

后话

终于,本书主要章节到这里基本结束了,关于EJB与Jini,只是简要的说了其部分工作方式。详细内容还需要阅读其他书籍等渠道。最后,本系列后续最后更新一节附录的内容,接着开始尝试做一些实际的项目以及坚持每日刷题了。

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

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

相关文章

【qt】纯代码界面设计

界面设计目录 一.界面设计的三种方式1.使用界面设计器2.纯代码界面设计3.混合界面设计 二.纯代码进行界面设计1.代码界面设计的总思路2.创建项目3.设计草图4.添加组件指针5.初始化组件指针6.添加组件到窗口①水平布局②垂直布局③细节点 7.定义槽函数8.初始化信号槽9.实现槽函数…

如何禁止打开PDF文件?推荐2种方法!

在工作中,我们经常会使用到PDF文件,对于重要的文件,不想被随意打开怎么办呢?下面小编分享2个方法,第二个很实用,记得收藏起来! 方法1:设置密码保护 我们可以通过PDF编辑器&#xff…

【图像识别】Swin Transformer

一、引言 论文: Swin Transformer: Hierarchical Vision Transformer using Shifted Windows 作者: Microsoft Research Asia 代码: Swin Transformer 特点: 提出滑动窗口自注意力 (Shifted Window based Self-Attention) 解决Vi…

恶意软件正劫持安全软件更新进行分发

GuptiMiner 是一个高度复杂的威胁,最早在 2018 年发现,主要为了在大型企业中分发后门。一种是 PuTTY Link 的增强版本后门,能够针对本地网络进行 SMB 扫描,并通过网络横向移动到网络上其他可能易受攻击的 Windows 7 和 Windows Se…

如何盘点选择的连锁收银系统贵不贵

在选择连锁收银系统时,成本是一个至关重要的考量因素。盘点连锁收银系统的成本既涉及到系统本身的购买费用,也包括了系统的维护、培训以及可能带来的附加费用。下面将从四个方面对连锁收银系统的成本进行盘点。 1. 初始投资成本 连锁收银系统的初始投资…

Python基础详解四

一,Json解析 字典转换为JSON: import jsondata [{"name":"袁震","age":20},{"name":"张三","age":21},{"name":"李四","age":22}] str json.dumps(data) …

c++父类指针指向子类

有一个常见的c题,就是父类和子类的构造函数和析构函数分别调用顺序: 父类构造函数子类构造函数子类析构函数父类析构函数 以及父类中的函数在子类中重新实现后,父类指针指向子类后,该指针调用的函数是父类中的还是子类中的&…

【GlobalMapper精品教程】079:投影坐标系转地理坐标系(UTM转WGS1984/2000)

文章目录 一、矢量UTM转WGS1984/20001. UTM转WGS19842. UTM转CGCS2000二、栅格UTM转WGS1984/2000一、矢量UTM转WGS1984/2000 加载配套实验数据(data079.rar)中的矢量数据,如下所示: 查看源坐标系:双击图层的,图层投影选项卡,为UTM投影,Zone48N。 设置系统坐标系:点击…

【MATLAB源码-第206期】基于matlab的差分进化算法(DE)机器人栅格路径规划,输出做短路径图和适应度曲线。

操作环境: MATLAB 2022a 1、算法描述 差分进化算法(Differential Evolution, DE)是一种有效的实数编码的进化算法,主要用于解决实值函数的全局优化问题。本文将详细介绍差分进化算法的背景、原理、操作步骤、参数选择以及实际应…

2024数维杯数学建模竞赛A题完整代码和思路论文解析

2024数维杯数学建模完整代码和成品论文已更新,获取↓↓↓↓↓ https://www.yuque.com/u42168770/qv6z0d/bgic2nbxs2h41pvt?singleDoc# 2024数维杯数学建模A题34页论文已完成,论文包括摘要、问题重述、问题分析、模型假设、符号说明、模型的建立和求解&…

Qt之常用控件一

Widget常见属性及其作用 属性作用enabled 设置控件是否可使⽤. true 表⽰可⽤, false 表⽰禁⽤ geometry 位置和尺⼨. 包含 x, y, width, height 四个部分. 其中坐标是以⽗元素为参考进⾏设置的. windowTitle 设置 widget 标题 windowIcon 设置 widget 图标 windowOpa…

【姿态解算与滤波算法】

姿态解算 一、主线 姿态表示方式:矩阵表示,轴角表示,欧拉角表示,四元数表示。 惯性测量单元IMU(Inertial Measurement Unit):MPU6050芯片,包含陀螺仪和加速度计,分别测…

为啥我说英语能决定程序员的天花板?

看到知乎有这样的一个问题,作为程序员的你,大学最后悔没有好好学哪门课? 很多人回答《软件工程》、《线性代数》、《微积分》等,各种都有。。 但我觉得,这些课都很重要,但没学好不妨碍自学。 其实对程序…

芯课堂 | 如何使用SWM系列产品的TIMER功能(一)

01 TIMER简介 TIMER是一种定时器工具,用来在一个后台线程计划执行指定任务。它可以计划执行一个任务一次或反复多次。 我司的SWM系列单片机提供的TIMER个数和功能有些微差别,为了让您更加简单的使用这一功能,下面将以SWM190为例&#xff0…

高效视频剪辑:视频批量调色,如何利用色调调整提升效率

在视频剪辑的后期处理中,调色是一个至关重要的环节。它不仅能够改变视频的整体氛围和风格,还能够突出视频的重点,增强观众的视觉体验。然而,对于大量的视频素材进行逐个调色处理,无疑会耗费大量的时间和精力。我们可以…

在IDEA中使用 Spring Initializr 新建 spring boots 项目

【在IDEA中使用 Spring Initializr 新建 spring boots 项目 - CSDN Apphttp://t.csdnimg.cn/mVs5P Spring Initializr 创建spring boots项目 添加到pom.xml <dependency> <groupId>mysql</groupId> <artifactId>mysql-connec…

鸿蒙开发接口Ability框架:【(窗口扩展能力)】

窗口扩展能力 WindowExtensionAbility基于ExtensionAbility&#xff0c;WindowExtensionAbility中展示的内容作为一个控件(AbilityComponent)内容展示在其他应用窗口中&#xff0c;实现在一个窗口中展示多个应用程序内容的功能。 说明&#xff1a; 本模块首批接口从API versio…

Android 13 aosp 默认关闭SELinux

通过adb修改 adb root adb shell setenforce 0 // 开SELinux&#xff0c;设置成模式permissive adb shell setenforce 1 // 关SELinux&#xff0c;设置成模式enforce adb shell getenforce // 获取当前SELinux状态源码修改 Android_source/system/core/init/selinu…

前端笔记-day05

文章目录 01-结构伪类选择器02-结构伪类选择器-公式用法03-伪元素选择器04-盒子模型-组成05-盒子模型-边框线06-盒子模型-单方向边框线07-盒子模型-内边距08-盒子模型-padding多值写法09-盒子模型-尺寸计算10-盒子模型-版心居中11-清除默认样式12-元素溢出overflow13-外边距合并…

Redis如何避免数据丢失?——RDB

目录 1. RDB机制的配置 2. fork()函数和写时复制(Copy On Write&#xff09; 什么是Copy On Write 系统fork中使用Copy On Write机制 3. RDB文件结构 RDB文件内容和内容顺序 InfoAuxFields是rdb信息数据 数据库数据 数据 数据存储格式 字符串编码 操作码 4. RDB的2…