Java 应用与开发 - Java 语言基础与流程控制运算符与表达式 从键盘获得输入 语句 分支结构 循环结构 分支结构 O if 分支结构 1 if (条件表达式) { 语句序列 1 } else { 语句序列 2 } if (条件表达式) { 语句序列 } 条件表达式 语句序列1 语句序列2 T F 条件表达式 语句序列1 T F if 双路条件结构 if 单路条件结构 大纲 数据类型 常量和变量 关键字与标识符 运算符与表达式 2 if (条件表达式1) { 语句序列 1 } else if (条件表达式2) { 语句序列 2 … } else if (条件表达式n) { 语句序列 n } else { 语句序列 n+1 } if 多重条件选择结构 条件表达式 1 语句序列 1 T F 条件表达式 2 条件表达式 n 语句序列 2 语句序列 n F F 语句序列 n+1 T T 条件表达式的结果必须 循环结构 分支结构 O switch 分支结构2 switch (表达式) { case 常量表达式1: 语句序列1; break; case 常量表达式2: 语句序列2; break; … case 常量表达式n: 语句序列n; break; default: 语句序列n+1; } switch 多路选择结构 n switch表达式后面的数据类型只支持byte、short、0 码力 | 37 页 | 685.82 KB | 1 年前3
 Java 应用与开发 - 高级 I/O 编程Java I/O 原理 基础 I/O 流 常用 I/O 流类型 I/O 应用 对象序列化 O 概念 对象序列化(Object Serialization)是指将对象的状态数据以字节流的 形式进行处理,一般用于实现对象的持久性,即长久保存一个对象的状 态并在需要时获取该对象的信息以重新构造一个状态完全相同的对象。 对象序列化可以理解为使用 I/O“对象流”类型实现对象读/写操作。 O 基本概念 ▶ 同的对象。 ▶ 对象序列化(Object Serialization) 通过写出对象的状态数据来 记录一个对象。 ▶ 对象序列化的主要任务 写出对象的状态信息,并遍历该对象对其 他对象的引用,递归的序列化所有被引用到的其他对象,从而建 立一个完整的序列化流。 大纲 Java I/O 原理 基础 I/O 流 常用 I/O 流类型 I/O 应用 实现对象序列化 要序列化一个对象,其所属的类必须实现以下两种接口之一: Externalizable java.io.ObjectOutputStream 和 ObjectInputStream 类分别提供 了对象的序列化和反序列化功能。 注意 ▶ 在对象序列化过程中,其所属类的 static 属性和方法代码不 会被序列化; ▶ 对于个别不希望被序列化的非 static 属性,也可以在属性声 明的时候使用 transient 关键字进行标明。 课程配套代码 ± sample0 码力 | 27 页 | 609.17 KB | 1 年前3
 Hello 算法 1.0.0b4 Java版return -1; } 4.1.4. 数组典型应用 数组是最基础的数据结构,在各类数据结构和算法中都有广泛应用。 ‧ 随机访问:如果我们想要随机抽取一些样本,那么可以用数组存储,并生成一个随机序列,根据索引实 现样本的随机抽取。 ‧ 排序和搜索:数组是排序和搜索算法最常用的数据结构。例如,快速排序、归并排序、二分查找等都需 要在数组上进行。 ‧ 查找表:当我们需要快速查找一个元素或者 addAll(list1); // 将列表 list1 拼接到 list 之后 排序列表。排序也是常用的方法之一。完成列表排序后,我们便可以使用在数组类算法题中经常考察的「二 分查找」和「双指针」算法。 4. 数组与链表 hello‑algo.com 62 // === File: list.java === /* 排序列表 */ Collections.sort(list); // 排序后,列表元素从小到大排列 的缺陷,需要通过标记删除。 被标记为已删除的空间是可以再次被使用的。当将新元素插入哈希表,并且通过哈希函数找 到了被标记为已删除的位置时,该位置可以被新的元素使用。这样做既能保持哈希表的探测 序列不变,又能保证哈希表的空间使用率。 � 为什么在线性探测中,查找元素的时候会出现哈希冲突呢? 查找的时候通过哈希函数找到对应的桶和键值对,发现 key 不匹配,这就代表有哈希冲突。因 此,线0 码力 | 342 页 | 27.39 MB | 1 年前3
 Hello 算法 1.0.0b1 Java版(nums[i] == target) return i; } return -1; } 4.1.4. 数组典型应用 随机访问。如果我们想要随机抽取一些样本,那么可以用数组存储,并生成一个随机序列,根据索引实现样本 的随机抽取。 二分查找。例如前文查字典的例子,我们可以将字典中的所有字按照拼音顺序存储在数组中,然后使用与日常 查纸质字典相同的“翻开中间,排除一半”的方式,来实现一个查电子字典的算法。 })); list.addAll(list1); // 将列表 list1 拼接到 list 之后 排序列表。排序也是常用的方法之一,完成列表排序后,我们就可以使用在数组类算法题中经常考察的「二分 查找」和「双指针」算法了。 // === File: list.java === /* 排序列表 */ Collections.sort(list); // 排序后,列表元素从小到大排列 4.3 完全二叉树 「完全二叉树 Complete Binary Tree」只有最底层的结点未被填满,且最底层结点尽量靠左填充。 完全二叉树非常适合用数组来表示。如果按照层序遍历序列的顺序来存储,那么空结点 null 一定全部出现在 序列的尾部,因此我们就可以不用存储这些 null 了。 7. 树 hello‑algo.com 95 Figure 7‑5. 完全二叉树 完满二叉树 「完满二叉树 Full0 码力 | 186 页 | 14.71 MB | 1 年前3
 《Java 应用与开发》课程讲义 - 王晓东. . . . . . . . . . . . . . . . . . . . . 176 13.4.3 对象序列化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 ix 13.4.4 实现对象序列化 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 float k; 4 k = 3.6f; 2.1.4 关键字与标识符 Java 的关键字(Java 保留字)如表2.3所示。 标识符是用来表示变量名、类名、方法名、数组名和文件名的有效字符序列。Java 语言对标识符的规定如下: • 可以由字母、数字、下划线 (_)、美元符号 ($) 组合而成。 • 必须以字母、下划线或美元符号开头,不能以数字开头。 • 关键字不能当标识符使用。 多行注释:/* */ – 文件注释:/** */ 2.2.2 分支结构 if 分支结构 1 if (条件表达式) { 语句序列 1 } else { 语句序列 2 } if (条件表达式) { 语句序列 } 条件表达式 语句序列1 语句序列2 T F 条件表达式 语句序列1 T if 双路条件结构 if 单路条件结构 图 2.2 if 分支结构 1 . . . . . . .0 码力 | 330 页 | 6.54 MB | 1 年前3
 Hello 算法 1.0.0b2 Java版(nums[i] == target) return i; } return -1; } 4.1.4. 数组典型应用 随机访问。如果我们想要随机抽取一些样本,那么可以用数组存储,并生成一个随机序列,根据索引实现样本 的随机抽取。 二分查找。例如前文查字典的例子,我们可以将字典中的所有字按照拼音顺序存储在数组中,然后使用与日常 查纸质字典相同的“翻开中间,排除一半”的方式,来实现一个查电子字典的算法。 })); list.addAll(list1); // 将列表 list1 拼接到 list 之后 排序列表。排序也是常用的方法之一,完成列表排序后,我们就可以使用在数组类算法题中经常考察的「二分 查找」和「双指针」算法了。 // === File: list.java === /* 排序列表 */ Collections.sort(list); // 排序后,列表元素从小到大排列 4.3 完全二叉树 「完全二叉树 Complete Binary Tree」只有最底层的结点未被填满,且最底层结点尽量靠左填充。 完全二叉树非常适合用数组来表示。如果按照层序遍历序列的顺序来存储,那么空结点 null 一定全部出现在 序列的尾部,因此我们就可以不用存储这些 null 了。 7. 树 hello‑algo.com 96 Figure 7‑5. 完全二叉树 完满二叉树 「完满二叉树 Full0 码力 | 197 页 | 15.72 MB | 1 年前3
 Hello 算法 1.0.0b5 Java版4.1.3 数组典型应用 数组是一种基础且常见的数据结构,既频繁应用在各类算法之中,也可用于实现各种复杂数据结构。 ‧ 随机访问:如果我们想要随机抽取一些样本,那么可以用数组存储,并生成一个随机序列,根据索引实 现样本的随机抽取。 ‧ 排序和搜索:数组是排序和搜索算法最常用的数据结构。快速排序、归并排序、二分查找等都主要在数 组上进行。 ‧ 查找表:当我们需要快速查找一个元素或者需要查找 将列表 list1 拼接到 list 之后 第 4 章 数组与链表 hello‑algo.com 78 6. 排序列表 完成列表排序后,我们便可以使用在数组类算法题中经常考察的“二分查找”和“双指针”算法。 // === File: list.java === /* 排序列表 */ Collections.sort(list); // 排序后,列表元素从小到大排列 4.3.2 列表实现 的缺陷,需要通过标记删除。 被标记为已删除的空间是可以再次被使用的。当将新元素插入哈希表,并且通过哈希函数找 到了被标记为已删除的位置时,该位置可以被新的元素使用。这样做既能保持哈希表的探测 序列不变,又能保证哈希表的空间使用率。 � 为什么在线性探测中,查找元素的时候会出现哈希冲突呢? 查找的时候通过哈希函数找到对应的桶和键值对,发现 key 不匹配,这就代表有哈希冲突。因 此,线0 码力 | 376 页 | 30.69 MB | 1 年前3
 Hello 算法 1.1.0 Java版4.1.3 数组典型应用 数组是一种基础且常见的数据结构,既频繁应用在各类算法之中,也可用于实现各种复杂数据结构。 ‧ 随机访问:如果我们想随机抽取一些样本,那么可以用数组存储,并生成一个随机序列,根据索引实现 随机抽样。 ‧ 排序和搜索:数组是排序和搜索算法最常用的数据结构。快速排序、归并排序、二分查找等都主要在数 组上进行。 ‧ 查找表:当需要快速查找一个元素或其对应关系时,可以 9 })); nums.addAll(nums1); // 将列表 nums1 拼接到 nums 之后 6. 排序列表 完成列表排序后,我们便可以使用在数组类算法题中经常考查的“二分查找”和“双指针”算法。 // === File: list.java === /* 排序列表 */ Collections.sort(nums); // 排序后,列表元素从小到大排列 第 4 章 数组与链表 多次哈希是开放寻址的一种,开放寻址法都有不能直接删除元素的缺陷,需要通过标记删除。标记为已删除 的空间可以再次使用。当将新元素插入哈希表,并且通过哈希函数找到标记为已删除的位置时,该位置可以 被新元素使用。这样做既能保持哈希表的探测序列不变,又能保证哈希表的空间使用率。 Q:为什么在线性探测中,查找元素的时候会出现哈希冲突呢? 查找的时候通过哈希函数找到对应的桶和键值对,发现 key 不匹配,这就代表有哈希冲突。因此,线性探测0 码力 | 378 页 | 18.47 MB | 1 年前3
 Hello 算法 1.0.0 Java版4.1.3 数组典型应用 数组是一种基础且常见的数据结构,既频繁应用在各类算法之中,也可用于实现各种复杂数据结构。 ‧ 随机访问:如果我们想随机抽取一些样本,那么可以用数组存储,并生成一个随机序列,根据索引实现 随机抽样。 ‧ 排序和搜索:数组是排序和搜索算法最常用的数据结构。快速排序、归并排序、二分查找等都主要在数 组上进行。 ‧ 查找表:当需要快速查找一个元素或其对应关系时,可以 9 })); nums.addAll(nums1); // 将列表 nums1 拼接到 nums 之后 6. 排序列表 完成列表排序后,我们便可以使用在数组类算法题中经常考查的“二分查找”和“双指针”算法。 // === File: list.java === /* 排序列表 */ Collections.sort(nums); // 排序后,列表元素从小到大排列 第 4 章 数组与链表 多次哈希是开放寻址的一种,开放寻址法都有不能直接删除元素的缺陷,需要通过标记删除。标记为已删除 的空间可以再次使用。当将新元素插入哈希表,并且通过哈希函数找到标记为已删除的位置时,该位置可以 被新元素使用。这样做既能保持哈希表的探测序列不变,又能保证哈希表的空间使用率。 Q:为什么在线性探测中,查找元素的时候会出现哈希冲突呢? 查找的时候通过哈希函数找到对应的桶和键值对,发现 key 不匹配,这就代表有哈希冲突。因此,线性探测0 码力 | 376 页 | 17.59 MB | 1 年前3
 Hello 算法 1.2.0 简体中文 Java 版4.1.3 数组典型应用 数组是一种基础且常见的数据结构,既频繁应用在各类算法之中,也可用于实现各种复杂数据结构。 ‧ 随机访问:如果我们想随机抽取一些样本,那么可以用数组存储,并生成一个随机序列,根据索引实现 随机抽样。 ‧ 排序和搜索:数组是排序和搜索算法最常用的数据结构。快速排序、归并排序、二分查找等都主要在数 组上进行。 ‧ 查找表:当需要快速查找一个元素或其对应关系时,可以 9 })); nums.addAll(nums1); // 将列表 nums1 拼接到 nums 之后 6. 排序列表 完成列表排序后,我们便可以使用在数组类算法题中经常考查的“二分查找”和“双指针”算法。 // === File: list.java === /* 排序列表 */ Collections.sort(nums); // 排序后,列表元素从小到大排列 第 4 章 数组与链表 多次哈希是开放寻址的一种,开放寻址法都有不能直接删除元素的缺陷,需要通过标记删除。标记为已删除 的空间可以再次使用。当将新元素插入哈希表,并且通过哈希函数找到标记为已删除的位置时,该位置可以 被新元素使用。这样做既能保持哈希表的探测序列不变,又能保证哈希表的空间使用率。 Q:为什么在线性探测中,查找元素的时候会出现哈希冲突呢? 查找的时候通过哈希函数找到对应的桶和键值对,发现 key 不匹配,这就代表有哈希冲突。因此,线性探测0 码力 | 379 页 | 18.48 MB | 10 月前3
共 17 条
- 1
 - 2
 













