Java 应用与开发 - Java 数组和字符串大纲 数组的概念 一维数组 二维数组 字符串 Java 应用与开发 Java 数组和字符串 王晓东 wangxiaodong@ouc.edu.cn 中国海洋大学 October 16, 2020 大纲 数组的概念 一维数组 二维数组 字符串 参考书目 1. 陈国君等编著, Java 程序设计基础(第 5 版), 清华大学出 版社 2. Bruce Eckel, Thinking in 数组的概念 一维数组 二维数组 字符串 学习目标 1. 掌握 Java 数组的概念 2. 学会一维数组和二维数组的使用;认识 Arrays 类,掌握操 作数组相关方法 3. 掌握 Java 字符串的概念,字符串与数组的关系;学会 String 类常用字符串操作方法 大纲 数组的概念 一维数组 二维数组 字符串 大纲 数组的概念 一维数组 二维数组 字符串 大纲 数组的概念 一维数组 一维数组 二维数组 字符串 接下来… 数组的概念 一维数组 二维数组 字符串 大纲 数组的概念 一维数组 二维数组 字符串 数组的基本概念 数组是相同数据类型的元素按一定顺序排列的集合。Java 中, 数组元素既可以为基本数据类型,也可以为对象。 O Java 的内存分配(基础) 栈内存 存放定义的基本类型的变量和对象的引用变量,超 出作用域将自动释放。 堆内存 存放由 new 运算符创建的对象和数组,由0 码力 | 33 页 | 620.46 KB | 1 年前3
Hello 算法 1.0.0b5 Java版Python 为准,例如使用 None 来表示“空”。 ‧ 本书部分放弃了编程语言的注释规范,以换取更加紧凑的内容排版。注释主要分为三种类型:标题注 释、内容注释、多行注释。 /* 标题注释,用于标注函数、类、测试样例等 */ // 内容注释,用于详解代码 /** * 多行 * 注释 */ 0.2.2 在动画图解中高效学习 相较于文字,视频和图片具有更高的信息密度和结构化程度,更易于理解。在本书中,重点和难点知识将主 ,每一轮将一张扑克牌从无序部分插入至有序部分,直至所有扑克牌都有序。 图 1‑2 扑克排序步骤 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 库函数中都存在插入排序的身影。 例三:货币找零。假设我们在超市购买了 69 元的商品,给了收银员 100 元,则收银员需要找我们 31 元。他 会很自然地完成如图 1‑3 所示的思考。 1. 可选项是比 iteration」是一种重复执行某个任务的控制结构。在迭代中,程序会在满足一定的条件下重复执行某 段代码,直到这个条件不再满足。 1. for 循环 for 循环是最常见的迭代形式之一,适合预先知道迭代次数时使用。 以下函数基于 for 循环实现了求和 1 + 2 + ⋯ + ? ,求和结果使用变量 res 记录。需要注意的是,Python 中 range(a, b) 对应的区间是“左闭右开”的,对应的遍历范围为 ?0 码力 | 376 页 | 30.69 MB | 1 年前3
Hello 算法 1.1.0 Java版本书部分放弃了编程语言的注释规范,以换取更加紧凑的内容排版。注释主要分为三种类型:标题注 释、内容注释、多行注释。 第 0 章 前言 hello‑algo.com 5 /* 标题注释,用于标注函数、类、测试样例等 */ // 内容注释,用于详解代码 /** * 多行 * 注释 */ 0.2.2 在动画图解中高效学习 相较于文字,视频和图片具有更高的信息密度和结构化程度,更易于理解。在本书中,重点和难点知识将主 ,每一轮将一张扑克牌从无序部分插入至有序部分,直至所有扑克牌都有序。 图 1‑2 扑克排序步骤 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 库函数中都有插入排序的身影。 例三:货币找零。假设我们在超市购买了 69 元的商品,给了收银员 100 元,则收银员需要找我们 31 元。他 会很自然地完成如图 1‑3 所示的思考。 1. 可选项是比 某个任务的控制结构。在迭代中,程序会在满足一定的条件下重复执行某段 代码,直到这个条件不再满足。 1. for 循环 for 循环是最常见的迭代形式之一,适合在预先知道迭代次数时使用。 以下函数基于 for 循环实现了求和 1 + 2 + ⋯ + ? ,求和结果使用变量 res 记录。需要注意的是,Python 中 range(a, b) 对应的区间是“左闭右开”的,对应的遍历范围为 ?0 码力 | 378 页 | 18.47 MB | 1 年前3
Hello 算法 1.0.0 Java版Python 为准,例如使用 None 来表示“空”。 ‧ 本书部分放弃了编程语言的注释规范,以换取更加紧凑的内容排版。注释主要分为三种类型:标题注 释、内容注释、多行注释。 /* 标题注释,用于标注函数、类、测试样例等 */ // 内容注释,用于详解代码 /** * 多行 第 0 章 前言 hello‑algo.com 5 * 注释 */ 0.2.2 在动画图解中高效学习 相较于文 ,每一轮将一张扑克牌从无序部分插入至有序部分,直至所有扑克牌都有序。 图 1‑2 扑克排序步骤 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 库函数中都有插入排序的身影。 例三:货币找零。假设我们在超市购买了 69 元的商品,给了收银员 100 元,则收银员需要找我们 31 元。他 会很自然地完成如图 1‑3 所示的思考。 1. 可选项是比 iteration」是一种重复执行某个任务的控制结构。在迭代中,程序会在满足一定的条件下重复执行某 段代码,直到这个条件不再满足。 1. for 循环 for 循环是最常见的迭代形式之一,适合在预先知道迭代次数时使用。 以下函数基于 for 循环实现了求和 1 + 2 + ⋯ + ? ,求和结果使用变量 res 记录。需要注意的是,Python 中 range(a, b) 对应的区间是“左闭右开”的,对应的遍历范围为 ?0 码力 | 376 页 | 17.59 MB | 1 年前3
Hello 算法 1.0.0b4 Java版Python 为准,例如使用 None 来表示“空”。 ‧ 本书部分放弃了编程语言的注释规范,以换取更加紧凑的内容排版。注释主要分为三种类型:标题注 释、内容注释、多行注释。 /* 标题注释,用于标注函数、类、测试样例等 */ // 内容注释,用于详解代码 /** * 多行 * 注释 */ 0.2.2. 在动画图解中高效学习 相较于文字,视频和图片具有更高的信息密度和结构化程度,因此更易于理解。在本书中,重点和难点知识 置;完成后最左 3 张扑克已经有序。 4. 不断循环以上操作,直至所有扑克牌都有序后终止。 以上整理扑克牌的方法本质上就是「插入排序」算法,它在处理小型数据集时非常高效。许多编程语言的排 序库函数中都存在插入排序的身影。 Figure 1‑2. 扑克排序步骤 例三:货币找零。假设我们在超市购买了 69 元的商品,给收银员付了 100 元,则收银员需要给我们找 31 元。他会很自然地完成以下思考: 明显优于算法 C 。在这些情况下, 我们很难仅凭时间复杂度判断算法效率高低。当然,尽管存在上述问题,复杂度分析仍然是评判算法效率最 有效且常用的方法。 2.2.3. 函数渐近上界 设算法的计算操作数量是一个关于输入数据大小 ? 的函数,记为 ?(?) ,则以下算法的操作数量为 ?(?) = 3 + 2? void algorithm(int n) { int a = 1; // +1 a =0 码力 | 342 页 | 27.39 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Java 版本书部分放弃了编程语言的注释规范,以换取更加紧凑的内容排版。注释主要分为三种类型:标题注 释、内容注释、多行注释。 第 0 章 前言 www.hello‑algo.com 5 /* 标题注释,用于标注函数、类、测试样例等 */ // 内容注释,用于详解代码 /** * 多行 * 注释 */ 0.2.2 在动画图解中高效学习 相较于文字,视频和图片具有更高的信息密度和结构化程度,更易于理解。在本书中,重点和难点知识将主 ,每一轮将一张扑克牌从无序部分插入至有序部分,直至所有扑克牌都有序。 图 1‑2 扑克排序步骤 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 库函数中都有插入排序的身影。 例三:货币找零。假设我们在超市购买了 69 元的商品,给了收银员 100 元,则收银员需要找我们 31 元。他 会很自然地完成如图 1‑3 所示的思考。 1. 可选项是比 问 题时能够作出专业的反应和判断,从而提升工作的整体质量。举一个简单例子,每种编程语言都内置了排序 函数: ‧ 如果我们没有学过数据结构与算法,那么给定任何数据,我们可能都塞给这个排序函数去做了。运行顺 畅、性能不错,看上去并没有什么问题。 ‧ 但如果学过算法,我们就会知道内置排序函数的时间复杂度是 ?(? log ?) ;而如果给定的数据是固定 位数的整数(例如学号),那么我们就可以0 码力 | 379 页 | 18.48 MB | 10 月前3
Apache Shiro 1.2.x Reference Manual 中文翻译Referencing the Configuration 引用配置 现在我们已经定义了一个 INI 文件,我们可以在我们的示例程序中创建SecurityManager 实例 了,将 main 函数中的代码进行如下调整: Apache Shiro 1.2.x Reference Manual 中文翻译 11 2. Tutorial 教程 public static void main(String[] ((DefaultSessionManager)securityManager.getSessionManager()).setSessionDAO(sessionDAO); ... 使用这些函数,你可以配置 SecurityManager 视图(graph)中的任何一部分。 虽然在程序中配置很简单,但它并不是我们现实中配置的完美解决方案。在几种情况下这种 方法可能并不适合你的程序: JavaBean 的 POJO。在设置这些属性时,Shiro 默 认使用 Apache 通用的 BeanUtils 来完成这项复杂的工作,所以虽然 INI 值是文本,BeanUtils 知道如何将这些字符串值转换为适合的原始值类型并调用合适的 JavaBeans 的 setter 方法。 Reference Values 引用值 如果你想设置的值并不是一个原始值,而是另一个对象怎么办呢?你可以使用一个0 码力 | 196 页 | 2.34 MB | 1 年前3
《Java 应用与开发》课程讲义 - 王晓东3 课后习题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 i 3 Java 数组和字符串 21 3.1 数组的概念 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.2 一维数组 . . . . . . . . . . . . . . . . . . . . . . 25 3.5 字符串 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.5.1 字符串变量的创建 . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.5.2 String 类的常用方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.5.3 理解 Java 字符串 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.6 课后习题 . . . . . . . . . . . . . . .0 码力 | 330 页 | 6.54 MB | 1 年前3
Hello 算法 1.0.0b1 Java版0. 写在前面 hello‑algo.com 4 本书部分放弃了编程语言的注释规范,以换取更加紧凑的内容排版。注释主要分为三种类型:标题注释、内容 注释、多行注释。 /* 标题注释,用于标注函数、类、测试样例等 */ // 内容注释,用于详解代码 /** * 多行 * 注释 */ 0.2.3. 在动画图解中高效学习 视频和图片相比于文字的信息密度和结构化程度更高,更容易理解。在本书中,知识重难点会主要以动画、图 的。对于以上情况,我们很难仅凭时间复杂度来判定算法效率高低。然而,即使存在这些问题,复杂度分 析仍然是评判算法效率的最有效且常用的方法。 2.2.3. 函数渐近上界 设算法「计算操作数量」为 ?(?) ,其是一个关于输入数据大小 ? 的函数。例如,以下算法的操作数量为 ?(?) = 3 + 2? void algorithm(int n) { int a = 1; // +1 a = a } ?(?) 是个一次函数,说明时间增长趋势是线性的,因此易得时间复杂度是线性阶。 我们将线性阶的时间复杂度记为 ?(?) ,这个数学符号被称为「大 ? 记号 Big‑? Notation」,代表函数 ?(?) 的「渐近上界 asymptotic upper bound」。 我们要推算时间复杂度,本质上是在计算「操作数量函数 ?(?) 」的渐近上界。下面我们先来看看函数渐近上 界的数学定义。0 码力 | 186 页 | 14.71 MB | 1 年前3
Apache Shiro参考手册中文版在后台,当设置这些属性时,Shiro 默认使用 Apache Commons BeanUtils 来完成所有繁重的任务。所以,尽管 INI 值 是文本的,BeanUtils 知道如何去转换字符串值到正确的原始类型,然后调用相应的 JavaBean 的 setter 方法。 Reference Values 如果你需要设置的值不是一个原始的,而是另一个对象呢?那么,你可以使用美元符号($)来引用之前定义的实 本编码的字节数组。能够指定的值是一个 Base64 编码的字符串(默认),后一个 16 进制编码的字符串。默认是 Base64 是因为 Base64 编码只需较少的文本来表示 值——它拥有一个较大的编码表,意味着你的 token 都是较短的(几个较好的文本配置)。 然而,如果你喜欢使用 16 进制编码,你必须在字符串 token 前加上 0x("zero" "x")前缀: 对于 Map,你指定一系列由逗号分隔的键-值对,每个键-值对通过冒号":"被限定: 在上面的例子中,被$object1 引用的对象将属于在 map 中的字符串键值 key1,也就是,map.get("key1")返回 object1。 你还可以依照键来使用其他对象: Considerations Order Matters 上面的0 码力 | 92 页 | 1.16 MB | 1 年前3
共 25 条
- 1
- 2
- 3













