 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 年前3 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 年前3
 Java 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 年前3 Java 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 年前3
 Java 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 年前3 Java 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 年前3
 Java 应用与开发 - Servlet 编程Servlet 配置 Servlet 部署 Servlet 示例 什么是 Web ▶ Web 本质上就是 Internet 上所有文档(资源)的集合,如 HTML 网页、CSS、JS、图片、动态网页、声音、视频等。 ▶ Web 文档保存在 Web 站点上,Web 站点驻留在 Web 服务 器上。 ▶ 常见 Web 服务器有 Apache、IIS、WebLogic、GlassFish、 JBoss 和 Tomcat Web 使用请求/响应模式进行工作,Web 服务器不会主动将 Web 文档发送到客户端。 1. 由客户(一般是浏览器)使用 URL 对 Web 文档进行请求; 2. Web 服务器接收并处理请求; 3. 处理结束后将响应内容发送到客户。 大纲 Web 基础 Servlet 概述 Servlet 编程 Servlet 生命周期 Servlet 配置 Servlet 部署 Servlet 示例 (Multipurpose Internet mail Extensions) 标准来确定具体的响应类型。HTTP 响应总体上分为两类: 文本类型(纯文本字符、HTML、XML)和二进制原始类型 (图片、声音、视频)。 大纲 Web 基础 Servlet 概述 Servlet 编程 Servlet 生命周期 Servlet 配置 Servlet 部署 Servlet 示例 Java Web 应用的构成 ▶0 码力 | 50 页 | 725.36 KB | 1 年前3 Java 应用与开发 - Servlet 编程Servlet 配置 Servlet 部署 Servlet 示例 什么是 Web ▶ Web 本质上就是 Internet 上所有文档(资源)的集合,如 HTML 网页、CSS、JS、图片、动态网页、声音、视频等。 ▶ Web 文档保存在 Web 站点上,Web 站点驻留在 Web 服务 器上。 ▶ 常见 Web 服务器有 Apache、IIS、WebLogic、GlassFish、 JBoss 和 Tomcat Web 使用请求/响应模式进行工作,Web 服务器不会主动将 Web 文档发送到客户端。 1. 由客户(一般是浏览器)使用 URL 对 Web 文档进行请求; 2. Web 服务器接收并处理请求; 3. 处理结束后将响应内容发送到客户。 大纲 Web 基础 Servlet 概述 Servlet 编程 Servlet 生命周期 Servlet 配置 Servlet 部署 Servlet 示例 (Multipurpose Internet mail Extensions) 标准来确定具体的响应类型。HTTP 响应总体上分为两类: 文本类型(纯文本字符、HTML、XML)和二进制原始类型 (图片、声音、视频)。 大纲 Web 基础 Servlet 概述 Servlet 编程 Servlet 生命周期 Servlet 配置 Servlet 部署 Servlet 示例 Java Web 应用的构成 ▶0 码力 | 50 页 | 725.36 KB | 1 年前3
 Nacos架构&原理
年当我们决定做开源的时候,从 0.X 开始核心是把阿里内部的能力抽象好内核,然后逐步开 放出去,在这个阶段虎牙作为 Nacos 最早用户开始使用,解决直播行业迅速发展的规模和高可用 等问题,然后 Nacos 在视频和直播行业广泛使用。 2019 年当我们开放核心能力和竞争力之后,就开始与 Dubbo/Spring-cloud-alibaba 生态完成集 成,随着云原生的大势迅速被互联网行业使用。与此同时我们完成了多语言生态和服务网格生态的 数据变化异步通知等逻辑,是 Nacos 高性能的关键部分。  日志模块:管理日志分类,日志级别,日志可移植性(尤其避免冲突),日志格式,异常码+帮 助文档。  回调机制:SDK 通知数据,通过统⼀的模式回调用户处理。接口和数据结构需要具备可扩展性。  寻址模式:解决 Server IP 直连,域名访问,Nameserver 寻址、广播等多种寻址模式,需要可 扩展。  推送通道:解决 Server 与存储、Server Eureka 协议的优点并加以优化而出 来的,对于原生的 Gossip,由于随机选取发送消息的节点,也就不可避免的存在消息重复发送给同 ⼀节点的情况,增加了网络的传输的压力,也给消息节点带来额外的处理负载,而 Distro 算法引入 了权威 Server 的概念,每个节点负责⼀部分数据以及将自己的数据同步给其他节点,有效的降低 了消息冗余的问题。 早期的 Nacos ⼀致性协议 我们先来看看早起的0 码力 | 326 页 | 12.83 MB | 9 月前3 Nacos架构&原理
年当我们决定做开源的时候,从 0.X 开始核心是把阿里内部的能力抽象好内核,然后逐步开 放出去,在这个阶段虎牙作为 Nacos 最早用户开始使用,解决直播行业迅速发展的规模和高可用 等问题,然后 Nacos 在视频和直播行业广泛使用。 2019 年当我们开放核心能力和竞争力之后,就开始与 Dubbo/Spring-cloud-alibaba 生态完成集 成,随着云原生的大势迅速被互联网行业使用。与此同时我们完成了多语言生态和服务网格生态的 数据变化异步通知等逻辑,是 Nacos 高性能的关键部分。  日志模块:管理日志分类,日志级别,日志可移植性(尤其避免冲突),日志格式,异常码+帮 助文档。  回调机制:SDK 通知数据,通过统⼀的模式回调用户处理。接口和数据结构需要具备可扩展性。  寻址模式:解决 Server IP 直连,域名访问,Nameserver 寻址、广播等多种寻址模式,需要可 扩展。  推送通道:解决 Server 与存储、Server Eureka 协议的优点并加以优化而出 来的,对于原生的 Gossip,由于随机选取发送消息的节点,也就不可避免的存在消息重复发送给同 ⼀节点的情况,增加了网络的传输的压力,也给消息节点带来额外的处理负载,而 Distro 算法引入 了权威 Server 的概念,每个节点负责⼀部分数据以及将自己的数据同步给其他节点,有效的降低 了消息冗余的问题。 早期的 Nacos ⼀致性协议 我们先来看看早起的0 码力 | 326 页 | 12.83 MB | 9 月前3
 《Java 应用与开发》课程讲义 - 王晓东. . . 88 8.3 处理泛型类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 8.3.1 遍历泛型 Vector 集合 . . . . . . . . . . . . . . . . . . . . . . . . . . 89 8.3.2 泛型类型的处理方法 . . . . . . . 134 vii 11.2 GUI 事件处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 11.2.1 Java 事件和事件处理机制 . . . . . . . . . . . . . . . . . . . . . . . 134 11.2.2 事件处理相关概念 . . . . . . . . 2.7 事件适配器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 11.2.8 内部类和匿名类在 GUI 事件处理中的应用 . . . . . . . . . . . . . . 137 11.3 Applet . . . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 330 页 | 6.54 MB | 1 年前3 《Java 应用与开发》课程讲义 - 王晓东. . . 88 8.3 处理泛型类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 8.3.1 遍历泛型 Vector 集合 . . . . . . . . . . . . . . . . . . . . . . . . . . 89 8.3.2 泛型类型的处理方法 . . . . . . . 134 vii 11.2 GUI 事件处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 11.2.1 Java 事件和事件处理机制 . . . . . . . . . . . . . . . . . . . . . . . 134 11.2.2 事件处理相关概念 . . . . . . . . 2.7 事件适配器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 11.2.8 内部类和匿名类在 GUI 事件处理中的应用 . . . . . . . . . . . . . . 137 11.3 Applet . . . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 330 页 | 6.54 MB | 1 年前3
 Hello 算法 1.0.0b4 Java版释、内容注释、多行注释。 /* 标题注释,用于标注函数、类、测试样例等 */ // 内容注释,用于详解代码 /** * 多行 * 注释 */ 0.2.2. 在动画图解中高效学习 相较于文字,视频和图片具有更高的信息密度和结构化程度,因此更易于理解。在本书中,重点和难点知识 将主要通过动画和图解形式展示,而文字则作为动画和图片的解释与补充。 在阅读本书时,如果发现某段内容提供了动画或图解 在无序区间抽出一张扑克牌,插入至有序区间的正确位置;完成后最左 3 张扑克已经有序。 4. 不断循环以上操作,直至所有扑克牌都有序后终止。 以上整理扑克牌的方法本质上就是「插入排序」算法,它在处理小型数据集时非常高效。许多编程语言的排 序库函数中都存在插入排序的身影。 Figure 1‑2. 扑克排序步骤 例三:货币找零。假设我们在超市购买了 69 元的商品,给收银员付了 100 元,则收银员需要给我们找 表”,然后再回头理解物理结构 的含义。数组与链表是其他所有数据结构的基石,建议你投入更多时间深入了解这两种基本 数据结构。 3.2. 基本数据类型 谈及计算机中的数据,我们会想到文本、图片、视频、语音、3D 模型等各种形式。尽管这些数据的组织形式 各异,但它们都由各种基本数据类型构成。 基本数据类型是 CPU 可以直接进行运算的类型,在算法中直接被使用。它包括: ‧ 整数类型 byte0 码力 | 342 页 | 27.39 MB | 1 年前3 Hello 算法 1.0.0b4 Java版释、内容注释、多行注释。 /* 标题注释,用于标注函数、类、测试样例等 */ // 内容注释,用于详解代码 /** * 多行 * 注释 */ 0.2.2. 在动画图解中高效学习 相较于文字,视频和图片具有更高的信息密度和结构化程度,因此更易于理解。在本书中,重点和难点知识 将主要通过动画和图解形式展示,而文字则作为动画和图片的解释与补充。 在阅读本书时,如果发现某段内容提供了动画或图解 在无序区间抽出一张扑克牌,插入至有序区间的正确位置;完成后最左 3 张扑克已经有序。 4. 不断循环以上操作,直至所有扑克牌都有序后终止。 以上整理扑克牌的方法本质上就是「插入排序」算法,它在处理小型数据集时非常高效。许多编程语言的排 序库函数中都存在插入排序的身影。 Figure 1‑2. 扑克排序步骤 例三:货币找零。假设我们在超市购买了 69 元的商品,给收银员付了 100 元,则收银员需要给我们找 表”,然后再回头理解物理结构 的含义。数组与链表是其他所有数据结构的基石,建议你投入更多时间深入了解这两种基本 数据结构。 3.2. 基本数据类型 谈及计算机中的数据,我们会想到文本、图片、视频、语音、3D 模型等各种形式。尽管这些数据的组织形式 各异,但它们都由各种基本数据类型构成。 基本数据类型是 CPU 可以直接进行运算的类型,在算法中直接被使用。它包括: ‧ 整数类型 byte0 码力 | 342 页 | 27.39 MB | 1 年前3
 Hello 算法 1.0.0b1 Java版释、内容 注释、多行注释。 /* 标题注释,用于标注函数、类、测试样例等 */ // 内容注释,用于详解代码 /** * 多行 * 注释 */ 0.2.3. 在动画图解中高效学习 视频和图片相比于文字的信息密度和结构化程度更高,更容易理解。在本书中,知识重难点会主要以动画、图 解的形式呈现,而文字的作用则是作为动画和图的解释与补充。 阅读本书时,若发现某段内容提供了动画或图解 ?(log ?) , ?(?) , ?(?2) , ?(2?) 。 38 3. 数据结构简介 3.1. 数据与内存 3.1.1. 基本数据类型 谈到计算机中的数据,我们能够想到文本、图片、视频、语音、3D 模型等等,这些数据虽然组织形式不同,但 都是由各种基本数据类型构成的。 「基本数据类型」是 CPU 可以直接进行运算的类型,在算法中直接被使用。 ‧「整数」根据不同的长度分为 byte 2.3. 两种实现对比 与栈的结论一致,在此不再赘述。 5.2.4. 队列典型应用 ‧ 淘宝订单。购物者下单后,订单就被加入到队列之中,随后系统再根据顺序依次处理队列中的订单。在 双十一时,在短时间内会产生海量的订单,如何处理「高并发」则是工程师们需要重点思考的问题。 ‧ 各种待办事项。任何需要实现“先来后到”的功能,例如打印机的任务队列、餐厅的出餐队列等等。 5.3. 双向队列 对0 码力 | 186 页 | 14.71 MB | 1 年前3 Hello 算法 1.0.0b1 Java版释、内容 注释、多行注释。 /* 标题注释,用于标注函数、类、测试样例等 */ // 内容注释,用于详解代码 /** * 多行 * 注释 */ 0.2.3. 在动画图解中高效学习 视频和图片相比于文字的信息密度和结构化程度更高,更容易理解。在本书中,知识重难点会主要以动画、图 解的形式呈现,而文字的作用则是作为动画和图的解释与补充。 阅读本书时,若发现某段内容提供了动画或图解 ?(log ?) , ?(?) , ?(?2) , ?(2?) 。 38 3. 数据结构简介 3.1. 数据与内存 3.1.1. 基本数据类型 谈到计算机中的数据,我们能够想到文本、图片、视频、语音、3D 模型等等,这些数据虽然组织形式不同,但 都是由各种基本数据类型构成的。 「基本数据类型」是 CPU 可以直接进行运算的类型,在算法中直接被使用。 ‧「整数」根据不同的长度分为 byte 2.3. 两种实现对比 与栈的结论一致,在此不再赘述。 5.2.4. 队列典型应用 ‧ 淘宝订单。购物者下单后,订单就被加入到队列之中,随后系统再根据顺序依次处理队列中的订单。在 双十一时,在短时间内会产生海量的订单,如何处理「高并发」则是工程师们需要重点思考的问题。 ‧ 各种待办事项。任何需要实现“先来后到”的功能,例如打印机的任务队列、餐厅的出餐队列等等。 5.3. 双向队列 对0 码力 | 186 页 | 14.71 MB | 1 年前3
 Hello 算法 1.1.0 Java版“如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 计算机的出现给世界带来了巨大变革,它凭借高速的计算能力和出色的可编程性,成为了执行算法与处理数 据的理想媒介。无论是电子游戏的逼真画面、自动驾驶的智能决策,还是 AlphaGo 的精彩棋局、ChatGPT 的自然交互,这些应用都是算法在计算机上的精妙演绎。 事实上,在计算机问世之前, hello‑algo.com 5 /* 标题注释,用于标注函数、类、测试样例等 */ // 内容注释,用于详解代码 /** * 多行 * 注释 */ 0.2.2 在动画图解中高效学习 相较于文字,视频和图片具有更高的信息密度和结构化程度,更易于理解。在本书中,重点和难点知识将主 要通过动画以图解形式展示,而文字则作为解释与补充。 如果你在阅读本书时,发现某段内容提供了如图 0‑2 所示的动画图解,请以图为主、以文字为辅,综合两者 2 张扑克已经有序。 3. 不断循环步骤 2. ,每一轮将一张扑克牌从无序部分插入至有序部分,直至所有扑克牌都有序。 图 1‑2 扑克排序步骤 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 库函数中都有插入排序的身影。 例三:货币找零。假设我们在超市购买了 69 元的商品,给了收银员 100 元,则收银员需要找我们 31 元。他 会很自然地完成如图0 码力 | 378 页 | 18.47 MB | 1 年前3 Hello 算法 1.1.0 Java版“如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 计算机的出现给世界带来了巨大变革,它凭借高速的计算能力和出色的可编程性,成为了执行算法与处理数 据的理想媒介。无论是电子游戏的逼真画面、自动驾驶的智能决策,还是 AlphaGo 的精彩棋局、ChatGPT 的自然交互,这些应用都是算法在计算机上的精妙演绎。 事实上,在计算机问世之前, hello‑algo.com 5 /* 标题注释,用于标注函数、类、测试样例等 */ // 内容注释,用于详解代码 /** * 多行 * 注释 */ 0.2.2 在动画图解中高效学习 相较于文字,视频和图片具有更高的信息密度和结构化程度,更易于理解。在本书中,重点和难点知识将主 要通过动画以图解形式展示,而文字则作为解释与补充。 如果你在阅读本书时,发现某段内容提供了如图 0‑2 所示的动画图解,请以图为主、以文字为辅,综合两者 2 张扑克已经有序。 3. 不断循环步骤 2. ,每一轮将一张扑克牌从无序部分插入至有序部分,直至所有扑克牌都有序。 图 1‑2 扑克排序步骤 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 库函数中都有插入排序的身影。 例三:货币找零。假设我们在超市购买了 69 元的商品,给了收银员 100 元,则收银员需要找我们 31 元。他 会很自然地完成如图0 码力 | 378 页 | 18.47 MB | 1 年前3
 Hello 算法 1.0.0 Java版标题注释,用于标注函数、类、测试样例等 */ // 内容注释,用于详解代码 /** * 多行 第 0 章 前言 hello‑algo.com 5 * 注释 */ 0.2.2 在动画图解中高效学习 相较于文字,视频和图片具有更高的信息密度和结构化程度,更易于理解。在本书中,重点和难点知识将主 要通过动画以图解形式展示,而文字则作为解释与补充。 如果你在阅读本书时,发现某段内容提供了如图 0‑2 所示的动画图解,请以图为主、以文字为辅,综合两者 2 张扑克已经有序。 3. 不断循环步骤 2. ,每一轮将一张扑克牌从无序部分插入至有序部分,直至所有扑克牌都有序。 图 1‑2 扑克排序步骤 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 库函数中都有插入排序的身影。 例三:货币找零。假设我们在超市购买了 69 元的商品,给了收银员 100 元,则收银员需要找我们 31 元。他 会很自然地完成如图 图 2‑5 尾递归过程 � 请注意,许多编译器或解释器并不支持尾递归优化。例如,Python 默认不支持尾递归优化, 因此即使函数是尾递归形式,仍然可能会遇到栈溢出问题。 3. 递归树 当处理与“分治”相关的算法问题时,递归往往比迭代的思路更加直观、代码更加易读。以“斐波那契数列” 为例。 � 给定一个斐波那契数列 0, 1, 1, 2, 3, 5, 8, 13, … ,求该数列的第0 码力 | 376 页 | 17.59 MB | 1 年前3 Hello 算法 1.0.0 Java版标题注释,用于标注函数、类、测试样例等 */ // 内容注释,用于详解代码 /** * 多行 第 0 章 前言 hello‑algo.com 5 * 注释 */ 0.2.2 在动画图解中高效学习 相较于文字,视频和图片具有更高的信息密度和结构化程度,更易于理解。在本书中,重点和难点知识将主 要通过动画以图解形式展示,而文字则作为解释与补充。 如果你在阅读本书时,发现某段内容提供了如图 0‑2 所示的动画图解,请以图为主、以文字为辅,综合两者 2 张扑克已经有序。 3. 不断循环步骤 2. ,每一轮将一张扑克牌从无序部分插入至有序部分,直至所有扑克牌都有序。 图 1‑2 扑克排序步骤 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 库函数中都有插入排序的身影。 例三:货币找零。假设我们在超市购买了 69 元的商品,给了收银员 100 元,则收银员需要找我们 31 元。他 会很自然地完成如图 图 2‑5 尾递归过程 � 请注意,许多编译器或解释器并不支持尾递归优化。例如,Python 默认不支持尾递归优化, 因此即使函数是尾递归形式,仍然可能会遇到栈溢出问题。 3. 递归树 当处理与“分治”相关的算法问题时,递归往往比迭代的思路更加直观、代码更加易读。以“斐波那契数列” 为例。 � 给定一个斐波那契数列 0, 1, 1, 2, 3, 5, 8, 13, … ,求该数列的第0 码力 | 376 页 | 17.59 MB | 1 年前3
共 38 条
- 1
- 2
- 3
- 4













