 《Java 应用与开发》课程讲义 - 王晓东. . . . 118 10.4.2 使用迭代器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 10.5 集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 10.5.1 HashSet 互联网的蓬勃发展,由于异构性的大量存在, 跨平台编程技术受到追捧 Sun在SunWorld'95宣布Java技术诞生,发布HotJava浏览器。 一次编写、随处运行 Sun发布Java的第1版。并开始提供和维护完备的Java开发工具集和代码库。 Java JDK JRE Java1 Java1.1 Java1.2 Java2 J2SE J2ME J2EE 标准版,开发适用于PC上运行的程序 微缩版,开发适用于手机等嵌入式设备的程序 解释器将字节码指令逐条解释成所在底层平台 能够处理的指令格式,解释一条执行一条 图 1.3 Java 程序编译运行过程 1.3 Java 开发环境 构建 Java 开发环境,需要首先获取和安装 Java 开发工具集,可以从 Oracle 官方网 站链接 http://www.oracle.com/technetwork/java/javase/downloads/index.html 获取。下载完 成后解压放入合适的磁盘目录下。0 码力 | 330 页 | 6.54 MB | 1 年前3 《Java 应用与开发》课程讲义 - 王晓东. . . . 118 10.4.2 使用迭代器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 10.5 集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 10.5.1 HashSet 互联网的蓬勃发展,由于异构性的大量存在, 跨平台编程技术受到追捧 Sun在SunWorld'95宣布Java技术诞生,发布HotJava浏览器。 一次编写、随处运行 Sun发布Java的第1版。并开始提供和维护完备的Java开发工具集和代码库。 Java JDK JRE Java1 Java1.1 Java1.2 Java2 J2SE J2ME J2EE 标准版,开发适用于PC上运行的程序 微缩版,开发适用于手机等嵌入式设备的程序 解释器将字节码指令逐条解释成所在底层平台 能够处理的指令格式,解释一条执行一条 图 1.3 Java 程序编译运行过程 1.3 Java 开发环境 构建 Java 开发环境,需要首先获取和安装 Java 开发工具集,可以从 Oracle 官方网 站链接 http://www.oracle.com/technetwork/java/javase/downloads/index.html 获取。下载完 成后解压放入合适的磁盘目录下。0 码力 | 330 页 | 6.54 MB | 1 年前3
 Hello 算法 1.1.0 Java版张扑克已经有序。 3. 不断循环步骤 2. ,每一轮将一张扑克牌从无序部分插入至有序部分,直至所有扑克牌都有序。 图 1‑2 扑克排序步骤 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 库函数中都有插入排序的身影。 例三:货币找零。假设我们在超市购买了 69 元的商品,给了收银员 100 元,则收银员需要找我们 31 元。他 会很自然地完成如图 1‑3 许多 算法,用以解决生活中的大小问题。 ‧ 查字典的原理与二分查找算法相一致。二分查找算法体现了分而治之的重要算法思想。 ‧ 整理扑克的过程与插入排序算法非常类似。插入排序算法适合排序小型数据集。 第 1 章 初识算法 hello‑algo.com 16 ‧ 货币找零的步骤本质上是贪心算法,每一步都采取当前看来最好的选择。 ‧ 算法是在有限时间内解决特定问题的一组指令或操作步骤,而数据结构是计算机中组织和存储数据的 在计算机中,所有数据都是以二进制数的形式存储的,字符 char 也不例外。为了表示字符,我们需要建立一 套“字符集”,规定每个字符和二进制数之间的一一对应关系。有了字符集之后,计算机就可以通过查表完成 二进制数到字符的转换。 3.4.1 ASCII 字符集 ASCII 码是最早出现的字符集,其全称为 American Standard Code for Information Interchange(美国0 码力 | 378 页 | 18.47 MB | 1 年前3 Hello 算法 1.1.0 Java版张扑克已经有序。 3. 不断循环步骤 2. ,每一轮将一张扑克牌从无序部分插入至有序部分,直至所有扑克牌都有序。 图 1‑2 扑克排序步骤 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 库函数中都有插入排序的身影。 例三:货币找零。假设我们在超市购买了 69 元的商品,给了收银员 100 元,则收银员需要找我们 31 元。他 会很自然地完成如图 1‑3 许多 算法,用以解决生活中的大小问题。 ‧ 查字典的原理与二分查找算法相一致。二分查找算法体现了分而治之的重要算法思想。 ‧ 整理扑克的过程与插入排序算法非常类似。插入排序算法适合排序小型数据集。 第 1 章 初识算法 hello‑algo.com 16 ‧ 货币找零的步骤本质上是贪心算法,每一步都采取当前看来最好的选择。 ‧ 算法是在有限时间内解决特定问题的一组指令或操作步骤,而数据结构是计算机中组织和存储数据的 在计算机中,所有数据都是以二进制数的形式存储的,字符 char 也不例外。为了表示字符,我们需要建立一 套“字符集”,规定每个字符和二进制数之间的一一对应关系。有了字符集之后,计算机就可以通过查表完成 二进制数到字符的转换。 3.4.1 ASCII 字符集 ASCII 码是最早出现的字符集,其全称为 American Standard Code for Information Interchange(美国0 码力 | 378 页 | 18.47 MB | 1 年前3
 Hello 算法 1.2.0 简体中文 Java 版张扑克已经有序。 3. 不断循环步骤 2. ,每一轮将一张扑克牌从无序部分插入至有序部分,直至所有扑克牌都有序。 图 1‑2 扑克排序步骤 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 库函数中都有插入排序的身影。 例三:货币找零。假设我们在超市购买了 69 元的商品,给了收银员 100 元,则收银员需要找我们 31 元。他 会很自然地完成如图 1‑3 许多 算法,用以解决生活中的大小问题。 ‧ 查字典的原理与二分查找算法相一致。二分查找算法体现了分而治之的重要算法思想。 ‧ 整理扑克的过程与插入排序算法非常类似。插入排序算法适合排序小型数据集。 第 1 章 初识算法 www.hello‑algo.com 16 ‧ 货币找零的步骤本质上是贪心算法,每一步都采取当前看来最好的选择。 ‧ 算法是在有限时间内解决特定问题的一组指令或操作步骤,而数据结构是计算机中组织和存储数据的 在计算机中,所有数据都是以二进制数的形式存储的,字符 char 也不例外。为了表示字符,我们需要建立一 套“字符集”,规定每个字符和二进制数之间的一一对应关系。有了字符集之后,计算机就可以通过查表完成 二进制数到字符的转换。 3.4.1 ASCII 字符集 ASCII 码是最早出现的字符集,其全称为 American Standard Code for Information Interchange(美国0 码力 | 379 页 | 18.48 MB | 10 月前3 Hello 算法 1.2.0 简体中文 Java 版张扑克已经有序。 3. 不断循环步骤 2. ,每一轮将一张扑克牌从无序部分插入至有序部分,直至所有扑克牌都有序。 图 1‑2 扑克排序步骤 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 库函数中都有插入排序的身影。 例三:货币找零。假设我们在超市购买了 69 元的商品,给了收银员 100 元,则收银员需要找我们 31 元。他 会很自然地完成如图 1‑3 许多 算法,用以解决生活中的大小问题。 ‧ 查字典的原理与二分查找算法相一致。二分查找算法体现了分而治之的重要算法思想。 ‧ 整理扑克的过程与插入排序算法非常类似。插入排序算法适合排序小型数据集。 第 1 章 初识算法 www.hello‑algo.com 16 ‧ 货币找零的步骤本质上是贪心算法,每一步都采取当前看来最好的选择。 ‧ 算法是在有限时间内解决特定问题的一组指令或操作步骤,而数据结构是计算机中组织和存储数据的 在计算机中,所有数据都是以二进制数的形式存储的,字符 char 也不例外。为了表示字符,我们需要建立一 套“字符集”,规定每个字符和二进制数之间的一一对应关系。有了字符集之后,计算机就可以通过查表完成 二进制数到字符的转换。 3.4.1 ASCII 字符集 ASCII 码是最早出现的字符集,其全称为 American Standard Code for Information Interchange(美国0 码力 | 379 页 | 18.48 MB | 10 月前3
 Hello 算法 1.0.0 Java版张扑克已经有序。 3. 不断循环步骤 2. ,每一轮将一张扑克牌从无序部分插入至有序部分,直至所有扑克牌都有序。 图 1‑2 扑克排序步骤 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 库函数中都有插入排序的身影。 例三:货币找零。假设我们在超市购买了 69 元的商品,给了收银员 100 元,则收银员需要找我们 31 元。他 会很自然地完成如图 1‑3 查字典的原理与二分查找算法相一致。二分查找算法体现了分而治之的重要算法思想。 第 1 章 初识算法 hello‑algo.com 16 ‧ 整理扑克的过程与插入排序算法非常类似。插入排序算法适合排序小型数据集。 ‧ 货币找零的步骤本质上是贪心算法,每一步都采取当前看来最好的选择。 ‧ 算法是在有限时间内解决特定问题的一组指令或操作步骤,而数据结构是计算机中组织和存储数据的 方式。 ‧ 数据结构与算 在计算机中,所有数据都是以二进制数的形式存储的,字符 char 也不例外。为了表示字符,我们需要建立一 套“字符集”,规定每个字符和二进制数之间的一一对应关系。有了字符集之后,计算机就可以通过查表完成 二进制数到字符的转换。 3.4.1 ASCII 字符集 「ASCII 码」是最早出现的字符集,其全称为 American Standard Code for Information Interchange(美0 码力 | 376 页 | 17.59 MB | 1 年前3 Hello 算法 1.0.0 Java版张扑克已经有序。 3. 不断循环步骤 2. ,每一轮将一张扑克牌从无序部分插入至有序部分,直至所有扑克牌都有序。 图 1‑2 扑克排序步骤 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 库函数中都有插入排序的身影。 例三:货币找零。假设我们在超市购买了 69 元的商品,给了收银员 100 元,则收银员需要找我们 31 元。他 会很自然地完成如图 1‑3 查字典的原理与二分查找算法相一致。二分查找算法体现了分而治之的重要算法思想。 第 1 章 初识算法 hello‑algo.com 16 ‧ 整理扑克的过程与插入排序算法非常类似。插入排序算法适合排序小型数据集。 ‧ 货币找零的步骤本质上是贪心算法,每一步都采取当前看来最好的选择。 ‧ 算法是在有限时间内解决特定问题的一组指令或操作步骤,而数据结构是计算机中组织和存储数据的 方式。 ‧ 数据结构与算 在计算机中,所有数据都是以二进制数的形式存储的,字符 char 也不例外。为了表示字符,我们需要建立一 套“字符集”,规定每个字符和二进制数之间的一一对应关系。有了字符集之后,计算机就可以通过查表完成 二进制数到字符的转换。 3.4.1 ASCII 字符集 「ASCII 码」是最早出现的字符集,其全称为 American Standard Code for Information Interchange(美0 码力 | 376 页 | 17.59 MB | 1 年前3
 Nacos架构&原理
最早用户开始使用,解决直播行业迅速发展的规模和高可用 等问题,然后 Nacos 在视频和直播行业广泛使用。 2019 年当我们开放核心能力和竞争力之后,就开始与 Dubbo/Spring-cloud-alibaba 生态完成集 成,随着云原生的大势迅速被互联网行业使用。与此同时我们完成了多语言生态和服务网格生态的 布局。 2020 年 Nacos 迅速被成千上万家企业采用,并构建起强大的生态。 但是随着用户深入使用,逐 配置系统的日志输出级别(logLevel = INFO | WARN | ERROR) 就是⼀个配置项。 配置集(Configuration Set) ⼀组相关或者不相关的配置项的集合称为配置集。在系统中,⼀个配置文件通常就是⼀个配置集, 包含了系统各个方面的配置。例如,⼀个配置集可能包含了数据源、线程池、日志级别等配置项。 命名空间(Namespace) 用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的 有指定 Namespace 的情况下,默认使 用 public 命名空间。 配置组(Group) Nacos 中的⼀组配置集,是配置的维度之⼀。通过⼀个有意义的字符串(如 ABTest 中的实验组、 对照组)对配置集进行分组,从而区分 Data ID 相同的配置集。当您在 Nacos 上创建⼀个配置时, 如果未填写配置分组的名称,则配置分组的名称默认采用 DEFAULT_GROUP 。配置分组的常见场0 码力 | 326 页 | 12.83 MB | 9 月前3 Nacos架构&原理
最早用户开始使用,解决直播行业迅速发展的规模和高可用 等问题,然后 Nacos 在视频和直播行业广泛使用。 2019 年当我们开放核心能力和竞争力之后,就开始与 Dubbo/Spring-cloud-alibaba 生态完成集 成,随着云原生的大势迅速被互联网行业使用。与此同时我们完成了多语言生态和服务网格生态的 布局。 2020 年 Nacos 迅速被成千上万家企业采用,并构建起强大的生态。 但是随着用户深入使用,逐 配置系统的日志输出级别(logLevel = INFO | WARN | ERROR) 就是⼀个配置项。 配置集(Configuration Set) ⼀组相关或者不相关的配置项的集合称为配置集。在系统中,⼀个配置文件通常就是⼀个配置集, 包含了系统各个方面的配置。例如,⼀个配置集可能包含了数据源、线程池、日志级别等配置项。 命名空间(Namespace) 用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的 有指定 Namespace 的情况下,默认使 用 public 命名空间。 配置组(Group) Nacos 中的⼀组配置集,是配置的维度之⼀。通过⼀个有意义的字符串(如 ABTest 中的实验组、 对照组)对配置集进行分组,从而区分 Data ID 相同的配置集。当您在 Nacos 上创建⼀个配置时, 如果未填写配置分组的名称,则配置分组的名称默认采用 DEFAULT_GROUP 。配置分组的常见场0 码力 | 326 页 | 12.83 MB | 9 月前3
 Hello 算法 1.0.0b5 Java版张扑克已经有序。 3. 不断循环步骤 2. ,每一轮将一张扑克牌从无序部分插入至有序部分,直至所有扑克牌都有序。 图 1‑2 扑克排序步骤 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 库函数中都存在插入排序的身影。 例三:货币找零。假设我们在超市购买了 69 元的商品,给了收银员 100 元,则收银员需要找我们 31 元。他 会很自然地完成如图 查阅字典的原理与二分查找算法相一致。二分查找算法体现了分而治之的重要算法思想。 第 1 章 初识算法 hello‑algo.com 15 ‧ 整理扑克的过程与插入排序算法非常类似。插入排序算法适合排序小型数据集。 ‧ 货币找零的步骤本质上是贪心算法,每一步都采取当前看来的最好的选择。 ‧ 算法是在有限时间内解决特定问题的一组指令或操作步骤,而数据结构是计算机中组织和存储数据的 方式。 ‧ 数据结构与 在计算机中,所有数据都是以二进制数的形式存储的,字符 char 也不例外。为了表示字符,我们需要建立一 套“字符集”,规定每个字符和二进制数之间的一一对应关系。有了字符集之后,计算机就可以通过查表完成 二进制数到字符的转换。 3.4.1 ASCII 字符集 「ASCII 码」是最早出现的字符集,全称为“美国标准信息交换代码”。它使用 7 位二进制数(即一个字节的 低 7 位)表示一个字符,最多能够表示0 码力 | 376 页 | 30.69 MB | 1 年前3 Hello 算法 1.0.0b5 Java版张扑克已经有序。 3. 不断循环步骤 2. ,每一轮将一张扑克牌从无序部分插入至有序部分,直至所有扑克牌都有序。 图 1‑2 扑克排序步骤 上述整理扑克牌的方法本质上是“插入排序”算法,它在处理小型数据集时非常高效。许多编程语言的排序 库函数中都存在插入排序的身影。 例三:货币找零。假设我们在超市购买了 69 元的商品,给了收银员 100 元,则收银员需要找我们 31 元。他 会很自然地完成如图 查阅字典的原理与二分查找算法相一致。二分查找算法体现了分而治之的重要算法思想。 第 1 章 初识算法 hello‑algo.com 15 ‧ 整理扑克的过程与插入排序算法非常类似。插入排序算法适合排序小型数据集。 ‧ 货币找零的步骤本质上是贪心算法,每一步都采取当前看来的最好的选择。 ‧ 算法是在有限时间内解决特定问题的一组指令或操作步骤,而数据结构是计算机中组织和存储数据的 方式。 ‧ 数据结构与 在计算机中,所有数据都是以二进制数的形式存储的,字符 char 也不例外。为了表示字符,我们需要建立一 套“字符集”,规定每个字符和二进制数之间的一一对应关系。有了字符集之后,计算机就可以通过查表完成 二进制数到字符的转换。 3.4.1 ASCII 字符集 「ASCII 码」是最早出现的字符集,全称为“美国标准信息交换代码”。它使用 7 位二进制数(即一个字节的 低 7 位)表示一个字符,最多能够表示0 码力 | 376 页 | 30.69 MB | 1 年前3
 Hello 算法 1.0.0b4 Java版在无序区间抽出一张扑克牌,插入至有序区间的正确位置;完成后最左 3 张扑克已经有序。 4. 不断循环以上操作,直至所有扑克牌都有序后终止。 以上整理扑克牌的方法本质上就是「插入排序」算法,它在处理小型数据集时非常高效。许多编程语言的排 序库函数中都存在插入排序的身影。 Figure 1‑2. 扑克排序步骤 例三:货币找零。假设我们在超市购买了 69 元的商品,给收银员付了 100 元,则收银员需要给我们找 学会了许多 算法,用以解决生活中的大小问题。 ‧ 查阅字典的原理与二分查找算法相一致。二分查找体现了分而治之的重要算法思想。 ‧ 整理扑克的过程与插入排序算法非常类似。插入排序适合排序小型数据集。 ‧ 货币找零的步骤本质上是贪心算法,每一步都采取当前看来的最好选择。 ‧ 算法是在有限时间内解决特定问题的一组指令或操作步骤,而数据结构是计算机中组织和存储数据的 方式。 1. 初识算法 hello‑algo 在计算机中,所有数据都是以二进制数的形式存储的,字符 char 也不例外。为了表示字符,我们需要建立一 套「字符集」,规定每个字符和二进制数之间的一一对应关系。有了字符集之后,计算机就可以通过查表完成 二进制数到字符的转换。 3.4.1. ASCII 字符集 「ASCII 码」是最早出现的字符集,全称为“美国标准信息交换代码”。它使用 7 位二进制数(即一个字节的 低 7 位)表示一个字符,最多能够表示0 码力 | 342 页 | 27.39 MB | 1 年前3 Hello 算法 1.0.0b4 Java版在无序区间抽出一张扑克牌,插入至有序区间的正确位置;完成后最左 3 张扑克已经有序。 4. 不断循环以上操作,直至所有扑克牌都有序后终止。 以上整理扑克牌的方法本质上就是「插入排序」算法,它在处理小型数据集时非常高效。许多编程语言的排 序库函数中都存在插入排序的身影。 Figure 1‑2. 扑克排序步骤 例三:货币找零。假设我们在超市购买了 69 元的商品,给收银员付了 100 元,则收银员需要给我们找 学会了许多 算法,用以解决生活中的大小问题。 ‧ 查阅字典的原理与二分查找算法相一致。二分查找体现了分而治之的重要算法思想。 ‧ 整理扑克的过程与插入排序算法非常类似。插入排序适合排序小型数据集。 ‧ 货币找零的步骤本质上是贪心算法,每一步都采取当前看来的最好选择。 ‧ 算法是在有限时间内解决特定问题的一组指令或操作步骤,而数据结构是计算机中组织和存储数据的 方式。 1. 初识算法 hello‑algo 在计算机中,所有数据都是以二进制数的形式存储的,字符 char 也不例外。为了表示字符,我们需要建立一 套「字符集」,规定每个字符和二进制数之间的一一对应关系。有了字符集之后,计算机就可以通过查表完成 二进制数到字符的转换。 3.4.1. ASCII 字符集 「ASCII 码」是最早出现的字符集,全称为“美国标准信息交换代码”。它使用 7 位二进制数(即一个字节的 低 7 位)表示一个字符,最多能够表示0 码力 | 342 页 | 27.39 MB | 1 年前3
 JAVA 应用与开发 - 集合与映射果列表不包含指定元素,则返回 -1。 Object remove(int index) 7 28 Map �� java.util.Map ����������Map ������集��集合 ����映射��集的��������的�������� Object put(Object key, Object value) 向当前映射中加入一组新的健—值对,并返回所加入元素的 “值”,如果此映射中以前包含一个该键的映射关系,则用新值 containsValue(Object value) Set keySet() Collection values() 8 28 Map �� java.util.Map ����������Map ������集��集合 ����映射��集的��������的�������� Object put(Object key, Object value) Object get(Object key) 返回此映射中映射到指定键的值,没有则返回 value) Set keySet() Collection values() 8 28 Map �� java.util.Map ����������Map ������集��集合 ����映射��集的��������的�������� Object put(Object key, Object value) Object get(Object key) boolean isEmpty()0 码力 | 66 页 | 713.79 KB | 1 年前3 JAVA 应用与开发 - 集合与映射果列表不包含指定元素,则返回 -1。 Object remove(int index) 7 28 Map �� java.util.Map ����������Map ������集��集合 ����映射��集的��������的�������� Object put(Object key, Object value) 向当前映射中加入一组新的健—值对,并返回所加入元素的 “值”,如果此映射中以前包含一个该键的映射关系,则用新值 containsValue(Object value) Set keySet() Collection values() 8 28 Map �� java.util.Map ����������Map ������集��集合 ����映射��集的��������的�������� Object put(Object key, Object value) Object get(Object key) 返回此映射中映射到指定键的值,没有则返回 value) Set keySet() Collection values() 8 28 Map �� java.util.Map ����������Map ������集��集合 ����映射��集的��������的�������� Object put(Object key, Object value) Object get(Object key) boolean isEmpty()0 码力 | 66 页 | 713.79 KB | 1 年前3
 Apache Shiro 1.2.x Reference Manual 中文翻译Collection Properties 集合属性 列表(Lists)、集合(Sets)、图(Maps)可以像其它属性一样设置--直接设置或者像嵌套 属性一样,对于列表和集合,只需指定一个逗号分割的值集或者对象引用集。 如定义一些SessionListeners: sessionListener1 = com.company.my.SessionListenerImplementation ... veryone else'角色),但复杂 的程序中,这会成为你程序生命周期中一个主要的问题,会给你的软件带来很大的维护代 价。 明确为角色指定权限:明确为角色指定权限本质上是一组权限指令的名称集,在这种形 式下,程序(以及 Shiro)准确知道一个特定的角色是什么意思,因为它确切知道某行为 是否可以执行,而不用去猜测特定的角色可以或不可以做什么。 Shiro 团队提倡使用权限和明确为角 Annotation-based Authorization 基于注解的授权 如果你更喜欢基于注解的授权控制,除了 Subject 的 API 之外,Shiro提供了一个 Java 5 的注 解集。 Configuration 配置 在你使用 JAVA 的注解之前,你需要在程序中启动 AOP 支持,因为有许多AOP 框架,所以很 不幸,在这里并没有标准的在程序中启用 AOP 的方法。0 码力 | 196 页 | 2.34 MB | 1 年前3 Apache Shiro 1.2.x Reference Manual 中文翻译Collection Properties 集合属性 列表(Lists)、集合(Sets)、图(Maps)可以像其它属性一样设置--直接设置或者像嵌套 属性一样,对于列表和集合,只需指定一个逗号分割的值集或者对象引用集。 如定义一些SessionListeners: sessionListener1 = com.company.my.SessionListenerImplementation ... veryone else'角色),但复杂 的程序中,这会成为你程序生命周期中一个主要的问题,会给你的软件带来很大的维护代 价。 明确为角色指定权限:明确为角色指定权限本质上是一组权限指令的名称集,在这种形 式下,程序(以及 Shiro)准确知道一个特定的角色是什么意思,因为它确切知道某行为 是否可以执行,而不用去猜测特定的角色可以或不可以做什么。 Shiro 团队提倡使用权限和明确为角 Annotation-based Authorization 基于注解的授权 如果你更喜欢基于注解的授权控制,除了 Subject 的 API 之外,Shiro提供了一个 Java 5 的注 解集。 Configuration 配置 在你使用 JAVA 的注解之前,你需要在程序中启动 AOP 支持,因为有许多AOP 框架,所以很 不幸,在这里并没有标准的在程序中启用 AOP 的方法。0 码力 | 196 页 | 2.34 MB | 1 年前3
 Hello 算法 1.0.0b1 Java版下尽 量减小内存空间占用; ‧「浮点数」代表小数,根据长度分为 float, double ,同样根据算法的实际需求选用; ‧「字符」在计算机中是以字符集的形式保存的,char 的值实际上是数字,代表字符集中的编号,计算机 通过字符集查表来完成编号到字符的转换。占用空间与具体编程语言有关,通常为 2 bytes 或 1 byte ; ‧「布尔」代表逻辑中的“是”与“否”,其占用空间需要具体根据编程语言确定,通常为 extend(int[] nums, int enlarge) { // 初始化一个扩展长度后的数组 int[] res = new int[nums.length + enlarge]; // 将原数组中的所有元素复制到新数组 for (int i = 0; i < nums.length; i++) { res[i] = nums[i]; } // 返回扩展后的新数组 return res; } TreeNode nex = getInOrderNext(cur.right); int tmp = nex.val; // 递归删除结点 nex remove(nex.val); // 将 nex 的值复制给 cur cur.val = tmp; } return cur; } /* 获取中序遍历中的下一个结点(仅适用于 root 有左子结点的情况) */ TreeNode getInOrderNext(TreeNode0 码力 | 186 页 | 14.71 MB | 1 年前3 Hello 算法 1.0.0b1 Java版下尽 量减小内存空间占用; ‧「浮点数」代表小数,根据长度分为 float, double ,同样根据算法的实际需求选用; ‧「字符」在计算机中是以字符集的形式保存的,char 的值实际上是数字,代表字符集中的编号,计算机 通过字符集查表来完成编号到字符的转换。占用空间与具体编程语言有关,通常为 2 bytes 或 1 byte ; ‧「布尔」代表逻辑中的“是”与“否”,其占用空间需要具体根据编程语言确定,通常为 extend(int[] nums, int enlarge) { // 初始化一个扩展长度后的数组 int[] res = new int[nums.length + enlarge]; // 将原数组中的所有元素复制到新数组 for (int i = 0; i < nums.length; i++) { res[i] = nums[i]; } // 返回扩展后的新数组 return res; } TreeNode nex = getInOrderNext(cur.right); int tmp = nex.val; // 递归删除结点 nex remove(nex.val); // 将 nex 的值复制给 cur cur.val = tmp; } return cur; } /* 获取中序遍历中的下一个结点(仅适用于 root 有左子结点的情况) */ TreeNode getInOrderNext(TreeNode0 码力 | 186 页 | 14.71 MB | 1 年前3
共 31 条
- 1
- 2
- 3
- 4













