Java 应用与开发 - 异常处理
异常的概念及分类 Java 异常处理机制 Java 应用与开发 异常处理 王晓东 wangxiaodong@ouc.edu.cn 中国海洋大学 October 30, 2018 大纲 异常的概念及分类 Java 异常处理机制 学习目标 1. 掌握 Java 异常的概念和分类 2. 深入理解 Java 异常处理机制 大纲 异常的概念及分类 Java 异常处理机制 大纲 异常的概念及分类 Java 异常处理机制 大纲 异常的概念及分类 Java 异常处理机制 C++ 中的异常处理 O 《The C++ Programming Language》 ▶ 一个库的作者可以检测出发生了运行时错误,但一般不知道 怎样去处理它们(因为和用户具体的应用有关); ▶ 另一方面,库的用户知道怎样处理这些错误,但却无法检查 它们何时发生(如果能检测,就可以再用户的代码里处理 了,不用留给库去发现)。 了,不用留给库去发现)。 提供异常处理机制的的基本思想 让一个函数在发现了自己无法处理的错误时抛出(throw)一个 异常,然后它的(直接或者间接)调用者能够处理这个问题。 O 《C++ primer》 将问题检测和问题处理相分离。 (Exceptions let us separate problem detection from problem resolution.) 大纲 异常的概念及分类0 码力 | 33 页 | 626.40 KB | 1 年前3Java EE 企业应用系统设计 - HTTP 请求处理编程
大纲 HTTP 请求内容 Java EE 请求对象 Java EE 企业应用系统设计 HTTP 请求处理编程 王晓东 wangxiaodong@ouc.edu.cn 中国海洋大学 November 17, 2018 大纲 HTTP 请求内容 Java EE 请求对象 学习目标 1. 理解 Web 的工作模式,掌握 HTTP 协议的特点以及 HTTP 请求中包含哪些信息。 2. 理解 Web 工作模式 Web 通常使用请求�响应模式。 ▶ 客户端(浏览器)向服务器发出 HTTP 请求,在 HTTP 请 求中包含传递到服务器的数据; ▶ Web 服务器接收到请求,对请求进行处理。 ▶ Web 服务器使用 HTTP 向客户端发送响应。 ▶ 客户端接收到响应后,进行显示或页面跳转。 大纲 HTTP 请求内容 Java EE 请求对象 HTTP 请求中包含的信息 HTTP Referer 浏览器是从哪个页面来的 Cookie 浏览器保存的 cookie 对象 Java EE Web 组件 Servlet 和 JSP 中可以使用请求对象的方法 读取这些请求内容,进而进行相应的处理。 大纲 HTTP 请求内容 Java EE 请求对象 HTTP 请求中包含的信息 O 请求体 每次 HTTP 请求时,在请求头之后会有一个空行,接下来是请 求中包含的提交数据,即请求体。0 码力 | 27 页 | 565.27 KB | 1 年前3Java EE 企业应用系统开发 - HTTP 响应处理编程
大纲 HTTP 响应的内容 HTTP 响应对象 响应对象功能和方法 Java EE 企业应用系统开发 HTTP 响应处理编程 王晓东 wangxiaodong@ouc.edu.cn 中国海洋大学 November 17, 2018 大纲 HTTP 响应的内容 HTTP 响应对象 响应对象功能和方法 学习目标 1. 掌握 HTTP 响应的内容,包括响应状态行、响应头、响应 体。 2 接下来⋯ HTTP 响应的内容 HTTP 响应对象 响应对象功能和方法 大纲 HTTP 响应的内容 HTTP 响应对象 响应对象功能和方法 HTTP 响应的内容 在 Web 服务器接收请求处理后,向客户端发送 HTTP 响应 (Response)。 O 响应的内容 ▶ 响应状态(Status Code) ▶ 响应头(Response Header) ▶ 响应体(Response Body) 收到请求,没有处理完。 ▶ 2xx: 成功,响应完毕。 ▶ 3xx: 重定向,到另一个请求中去。 ▶ 4xx: 失败,没有请求的文档等。 ▶ 5xx: 内部错误,代码出现异常。 3. 状态描述。 大纲 HTTP 响应的内容 HTTP 响应对象 响应对象功能和方法 响应头 Web 服务器在向客户端发送 HTTP 响应时也可以包含响应头, 来指示客户端浏览器如何处理响应体,主要包括响应的类型、字0 码力 | 26 页 | 575.28 KB | 1 年前3Apache Shiro 1.2.x Reference Manual 中文翻译
Manual 中文翻译 5 介紹 1. Introduction 介绍 What is Apache Shiro? Apache Shiro是一个功能强大、灵活的,开源的安全框架。它可以干净利落地处理身份验 证、授权、企业会话管理和加密。 Apache Shiro的首要目标是易于使用和理解。安全通常很复杂,甚至让人感到很痛苦,但是 Shiro却不是这样子的。一个好的安全框架应该屏蔽复杂性,向外暴露简单、直观的API,来 setRememberMe(true); currentUser.login(token); } 就是这样,不能再简单了。 但如果登录失败了呢,你可以捕获所有异常然后按你期望的方式去处理: try { currentUser.login( token ); //无异常,说明就是我们想要的! } catch ( UnknownAccountException uae 在获取当前执行的 Subject 后,我们执行一个单独的 login) 命令,将之前创建的 AuthenticationToken 实例传给它。 调用 login 方法将有效地执行身份验证。 三步:处理成功或失败 Apache Shiro 1.2.x Reference Manual 中文翻译 36 5. Authentication 认证 当login函数没有返回信息时表明验证通过了。程序可以继续运行,此时执行0 码力 | 196 页 | 2.34 MB | 1 年前3Hello 算法 1.0.0b4 Java版
在无序区间抽出一张扑克牌,插入至有序区间的正确位置;完成后最左 3 张扑克已经有序。 4. 不断循环以上操作,直至所有扑克牌都有序后终止。 以上整理扑克牌的方法本质上就是「插入排序」算法,它在处理小型数据集时非常高效。许多编程语言的排 序库函数中都存在插入排序的身影。 Figure 1‑2. 扑克排序步骤 例三:货币找零。假设我们在超市购买了 69 元的商品,给收银员付了 100 元,则收银员需要给我们找 另一方面,数字零的原码有 +0 和 −0 两种表示方式。这意味着数字零对应着两个不同的二进制编码,而这 可能会带来歧义问题。例如,在条件判断中,如果没有区分正零和负零,可能会导致错误的判断结果。如果 我们想要处理正零和负零歧义,则需要引入额外的判断操作,其可能会降低计算机的运算效率。 +0 = 00000000 −0 = 10000000 与原码一样,反码也存在正负零歧义问题。为此,计算机进一步引入了「补码」。那么,补码有什么作用呢? 更简 单,更容易进行并行化处理,从而提高运算速度。 然而,这并不意味着计算机只能做加法。通过将加法与一些基本逻辑运算结合,计算机能够实现各种其他的 数学运算。例如,计算减法 ? − ? 可以转换为计算加法 ? + (−?) ;计算乘法和除法可以转换为计算多次加 法或减法。 现在,我们可以总结出计算机使用补码的原因:基于补码表示,计算机可以用同样的电路和操作来处理正数 和负数的加法,不需要0 码力 | 342 页 | 27.39 MB | 1 年前3Hello 算法 1.1.0 Java版
“如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 计算机的出现给世界带来了巨大变革,它凭借高速的计算能力和出色的可编程性,成为了执行算法与处理数 据的理想媒介。无论是电子游戏的逼真画面、自动驾驶的智能决策,还是 AlphaGo 的精彩棋局、ChatGPT 的自然交互,这些应用都是算法在计算机上的精妙演绎。 事实上,在计算机问世之前, 2 张扑克已经有序。 3. 不断循环步骤 2. ,每一轮将一张扑克牌从无序部分插入至有序部分,直至所有扑克牌都有序。 图 1‑2 扑克排序步骤 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 库函数中都有插入排序的身影。 例三:货币找零。假设我们在超市购买了 69 元的商品,给了收银员 100 元,则收银员需要找我们 31 元。他 会很自然地完成如图 2‑5 尾递归过程 Tip 请注意,许多编译器或解释器并不支持尾递归优化。例如,Python 默认不支持尾递归优化,因此即 使函数是尾递归形式,仍然可能会遇到栈溢出问题。 3. 递归树 当处理与“分治”相关的算法问题时,递归往往比迭代的思路更加直观、代码更加易读。以“斐波那契数列” 为例。 Question 给定一个斐波那契数列 0, 1, 1, 2, 3, 5, 8, 13, …0 码力 | 378 页 | 18.47 MB | 1 年前3Hello 算法 1.0.0 Java版
2 张扑克已经有序。 3. 不断循环步骤 2. ,每一轮将一张扑克牌从无序部分插入至有序部分,直至所有扑克牌都有序。 图 1‑2 扑克排序步骤 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 库函数中都有插入排序的身影。 例三:货币找零。假设我们在超市购买了 69 元的商品,给了收银员 100 元,则收银员需要找我们 31 元。他 会很自然地完成如图 图 2‑5 尾递归过程 � 请注意,许多编译器或解释器并不支持尾递归优化。例如,Python 默认不支持尾递归优化, 因此即使函数是尾递归形式,仍然可能会遇到栈溢出问题。 3. 递归树 当处理与“分治”相关的算法问题时,递归往往比迭代的思路更加直观、代码更加易读。以“斐波那契数列” 为例。 � 给定一个斐波那契数列 0, 1, 1, 2, 3, 5, 8, 13, … ,求该数列的第 从本质上看,递归体现了“将问题分解为更小子问题”的思维范式,这种分治策略至关重要。 ‧ 从算法角度看,搜索、排序、回溯、分治、动态规划等许多重要算法策略直接或间接地应用了这种思维 方式。 ‧ 从数据结构角度看,递归天然适合处理链表、树和图的相关问题,因为它们非常适合用分治思想进行分 析。 2.2.3 两者对比 总结以上内容,如表 2‑1 所示,迭代和递归在实现、性能和适用性上有所不同。 表 2‑1 迭代与递归特点对比0 码力 | 376 页 | 17.59 MB | 1 年前3Hello 算法 1.0.0b5 Java版
2 张扑克已经有序。 3. 不断循环步骤 2. ,每一轮将一张扑克牌从无序部分插入至有序部分,直至所有扑克牌都有序。 图 1‑2 扑克排序步骤 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 库函数中都存在插入排序的身影。 例三:货币找零。假设我们在超市购买了 69 元的商品,给了收银员 100 元,则收银员需要找我们 31 元。他 会很自然地完成如图 图 2‑5 尾递归过程 请注意,许多编译器或解释器并不支持尾递归优化。例如,Python 默认不支持尾递归优化,因此即使函数 是尾递归形式,但仍然可能会遇到栈溢出问题。 3. 递归树 当处理与“分治”相关的算法问题时,递归往往比迭代的思路更加直观、代码更加易读。以“斐波那契数列” 为例。 � 给定一个斐波那契数列 0, 1, 1, 2, 3, 5, 8, 13, … ,求该数列的第 本质上看,递归体现“将问题分解为更小子问题”的思维范式,这种分治策略是至关重要的。 ‧ 从算法角度看,搜索、排序、回溯、分治、动态规划等许多重要算法策略都直接或间接地应用这种思维 方式。 ‧ 从数据结构角度看,递归天然适合处理链表、树和图的相关问题,因为它们非常适合用分治思想进行分 析。 2.3 时间复杂度 运行时间可以直观且准确地反映算法的效率。如果我们想要准确预估一段代码的运行时间,应该如何操作 呢? 1.0 码力 | 376 页 | 30.69 MB | 1 年前3Hello 算法 1.2.0 简体中文 Java 版
“如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 计算机的出现给世界带来了巨大变革,它凭借高速的计算能力和出色的可编程性,成为了执行算法与处理数 据的理想媒介。无论是电子游戏的逼真画面、自动驾驶的智能决策,还是 AlphaGo 的精彩棋局、ChatGPT 的自然交互,这些应用都是算法在计算机上的精妙演绎。 事实上,在计算机问世之前, 2 张扑克已经有序。 3. 不断循环步骤 2. ,每一轮将一张扑克牌从无序部分插入至有序部分,直至所有扑克牌都有序。 图 1‑2 扑克排序步骤 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 库函数中都有插入排序的身影。 例三:货币找零。假设我们在超市购买了 69 元的商品,给了收银员 100 元,则收银员需要找我们 31 元。他 会很自然地完成如图 2‑5 尾递归过程 Tip 请注意,许多编译器或解释器并不支持尾递归优化。例如,Python 默认不支持尾递归优化,因此即 使函数是尾递归形式,仍然可能会遇到栈溢出问题。 3. 递归树 当处理与“分治”相关的算法问题时,递归往往比迭代的思路更加直观、代码更加易读。以“斐波那契数列” 为例。 Question 给定一个斐波那契数列 0, 1, 1, 2, 3, 5, 8, 13, …0 码力 | 379 页 | 18.48 MB | 10 月前3Java 应用与开发 - Java GUI 编程
大纲 GUI 组件及布局 GUI 事件处理 Applet Swing Swing 典型组件(课后自学) Java 应用与开发 Java GUI 编程 王晓东 wangxiaodong@ouc.edu.cn 中国海洋大学 October 30, 2018 大纲 GUI 组件及布局 GUI 事件处理 Applet Swing Swing 典型组件(课后自学) 学习目标 1. 了解用 Java 深入理解 GUI 事件处理机制 4. 了解 Applet,特别是其历史渊源,了解与 Applet 类似的技 术 5. 理解 Swing 和 AWT 的关系,学习使用 Swing 的典型组件 构建较复杂的图形界面程序 大纲 GUI 组件及布局 GUI 事件处理 Applet Swing Swing 典型组件(课后自学) 大纲 GUI 组件及布局 GUI 事件处理 Applet Swing GUI 组件及布局 GUI 事件处理 Applet Swing Swing 典型组件(课后自学) 用 Java 构建图形界面,我们有什么选择? ▶ AWT ▶ Swing ▶ Java FX ▶ 多语言混合开发 大纲 GUI 组件及布局 GUI 事件处理 Applet Swing Swing 典型组件(课后自学) 接下�� GUI 组件及布局 GUI 事件处理 Applet Swing0 码力 | 73 页 | 876.31 KB | 1 年前3
共 38 条
- 1
- 2
- 3
- 4