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
跟我学Shiro - 张开涛小。但是实现 起来可能稍微复杂点,需要维护“用户——角色,角色——权限(资源:操作)”之间的 关系。 Permission 字符串通配符权限 规则:“资源标识符:操作:对象实例 ID” 即对哪个资源的哪个实例可以进行什么操作。 其默认支持通配符权限字符串,“:”表示资源/操作/实例的分割;“,”表示操作的分割; “*”表示任意资源/操作/实例。 1、单个资源单个权限 6、Shiro 对权限字符串缺失部分的处理 如“user:view”等价于“user:view:*”;而“organization”等价于“organization:*”或者 “organization:*:*”。可以这么理解,这种方式实现了前缀匹配。 另外如“user:*”可以匹配如“user:delete”、“user:delete”可以匹配如“user:delete:1”、 “user:*:1”可以匹配如“user:view:1”、“user”可以匹配“user:view”或“user:view:1” 等 。 即 *可 以 匹 配 所 有 , 不 加 *可 以 进 行 前 缀 匹 配 ; 但 是 如 “ *:view ” 不 能 匹 配 “system:user:view”,需要使用“*:*:view”,即后缀匹配必须指定前缀(多个冒号就需要 多个*来匹配)。 7、WildcardPermission0 码力 | 219 页 | 4.16 MB | 10 月前3
Apache Shiro参考手册中文版是为了满足用户的要求和需要。即使该“用户”是另一个软件系统 而不是一个人类,你仍然得编写代码来响应行为,基于当前与你的软件进行交互的人或物。 Shiro 在它自己的设计中体现了这些概念。通过匹配那些对于软件开发人员来说已经很直观的东西,Apache Shiro 几 乎在任何应用程序保持了直观和易用性。 High-Level Overview 在最高的概念层次,Shiro 的架构有 基本上是一个文本配置,包含了由唯一命名的 section 组织的键/值对。键只是每个 section 唯一,而不是在整个 配置中(与 JDK 属性不同)。不过每个 section 都可以被看作单一的属性定义。 注释行能够以散列字符(# - 也就是"hash","pound"或"number"符号)或分号(";")开始。 以下是 Shiro 能够理解的 section 例子: [main] [main] POJO。 在后台,当设置这些属性时,Shiro 默认使用 Apache Commons BeanUtils 来完成所有繁重的任务。所以,尽管 INI 值 是文本的,BeanUtils 知道如何去转换字符串值到正确的原始类型,然后调用相应的 JavaBean 的 setter 方法。 Reference Values 如果你需要设置的值不是一个原始的,而是另一个对象呢?那么,你可以使用美元符号($)来引用之前定义的实0 码力 | 92 页 | 1.16 MB | 1 年前3
Apache Shiro 1.2.x Reference Manual 中文翻译uae ) { //username 不存在,给个错误提示? } catch ( IncorrectCredentialsException ice ) { //password 不匹配,再输入? } catch ( LockedAccountException lae ) { //账号锁住了,不能登入。给个提示? } ... 更多类型异常 ... } catch JavaBean 的 POJO。在设置这些属性时,Shiro 默 认使用 Apache 通用的 BeanUtils 来完成这项复杂的工作,所以虽然 INI 值是文本,BeanUtils 知道如何将这些字符串值转换为适合的原始值类型并调用合适的 JavaBeans 的 setter 方法。 Reference Values 引用值 如果你想设置的值并不是一个原始值,而是另一个对象怎么办呢?你可以使用一个 Encrypting Passwords 密码加密 如果你不希望[users]区域下的密码以明文显示,你可以用你喜欢的哈希算法(MD5, Sha1, Sha256, 等)来加密它们,将加密后的字符串作为密码值,默认的,密码建议用16位编码算 法,但也可以用64位编码算法替代(如下) 简单的安全密码 为了节约时间获得最佳实践,你可以使用 Shiro 的 Command Line Hasher,它可以加密密码0 码力 | 196 页 | 2.34 MB | 1 年前3
《Java 应用与开发》课程讲义 - 王晓东2.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.0b5 Java版52 3.3 数字编码 * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 3.4 字符编码 * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 3.5 小结 . . . 对数阶常见于分治算法。例如归并排序,输入长度为 ? 的数组,每轮递归将数组从中点划分为两半,形成高 度为 log ? 的递归树,使用 ?(log ?) 栈帧空间。 再例如将数字转化为字符串,输入一个正整数 ? ,它的位数为 log10 ?+1 ,即对应字符串长度为 log10 ?+1 ,因此空间复杂度为 ?(log10 ? + 1) = ?(log ?) 。 2.4.4 权衡时间与空间 理想情况下,我们希望算法 CPU 可以直接进行运算的类型,在算法中直接被使用,主要包括以下几种类型。 ‧ 整数类型 byte、short、int、long 。 ‧ 浮点数类型 float、double ,用于表示小数。 ‧ 字符类型 char ,用于表示各种语言的字母、标点符号、甚至表情符号等。 ‧ 布尔类型 bool ,用于表示“是”与“否”判断。 基本数据类型以二进制的形式存储在计算机中。一个二进制位即为 1 比特。在绝大多数现代系统中,10 码力 | 376 页 | 30.69 MB | 1 年前3
Hello 算法 1.0.0 Java版54 3.3 数字编码 * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 3.4 字符编码 * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 3.5 小结 . . . 对数阶常见于分治算法。例如归并排序,输入长度为 ? 的数组,每轮递归将数组从中点处划分为两半,形成 高度为 log ? 的递归树,使用 ?(log ?) 栈帧空间。 再例如将数字转化为字符串,输入一个正整数 ? ,它的位数为 ⌊log10 ?⌋ + 1 ,即对应字符串长度为 ⌊log10 ?⌋ + 1 ,因此空间复杂度为 ?(log10 ? + 1) = ?(log ?) 。 2.4.4 权衡时间与空间 理想情况下,我 CPU 可以直接进行运算的类型,在算法中直接被使用,主要包括以下几种。 ‧ 整数类型 byte、short、int、long 。 ‧ 浮点数类型 float、double ,用于表示小数。 ‧ 字符类型 char ,用于表示各种语言的字母、标点符号甚至表情符号等。 ‧ 布尔类型 bool ,用于表示“是”与“否”判断。 基本数据类型以二进制的形式存储在计算机中。一个二进制位即为 1 比特。在绝大多数现代操作系统中,10 码力 | 376 页 | 17.59 MB | 1 年前3
Hello 算法 1.1.0 Java版54 3.3 数字编码 * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 3.4 字符编码 * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 3.5 小结 . . . 对数阶常见于分治算法。例如归并排序,输入长度为 ? 的数组,每轮递归将数组从中点处划分为两半,形成 高度为 log ? 的递归树,使用 ?(log ?) 栈帧空间。 再例如将数字转化为字符串,输入一个正整数 ? ,它的位数为 ⌊log10 ?⌋ + 1 ,即对应字符串长度为 ⌊log10 ?⌋ + 1 ,因此空间复杂度为 ?(log10 ? + 1) = ?(log ?) 。 2.4.4 权衡时间与空间 理想情况下,我 CPU 可以直接进行运算的类型,在算法中直接被使用,主要包括以下几种。 ‧ 整数类型 byte、short、int、long 。 ‧ 浮点数类型 float、double ,用于表示小数。 ‧ 字符类型 char ,用于表示各种语言的字母、标点符号甚至表情符号等。 ‧ 布尔类型 bool ,用于表示“是”与“否”判断。 基本数据类型以二进制的形式存储在计算机中。一个二进制位即为 1 比特。在绝大多数现代操作系统中,10 码力 | 378 页 | 18.47 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Java 版54 3.3 数字编码 * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 3.4 字符编码 * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 3.5 小结 . . . 对数阶常见于分治算法。例如归并排序,输入长度为 ? 的数组,每轮递归将数组从中点处划分为两半,形成 高度为 log ? 的递归树,使用 ?(log ?) 栈帧空间。 再例如将数字转化为字符串,输入一个正整数 ? ,它的位数为 ⌊log10 ?⌋ + 1 ,即对应字符串长度为 ⌊log10 ?⌋ + 1 ,因此空间复杂度为 ?(log10 ? + 1) = ?(log ?) 。 2.4.4 权衡时间与空间 理想情况下,我 CPU 可以直接进行运算的类型,在算法中直接被使用,主要包括以下几种。 ‧ 整数类型 byte、short、int、long 。 ‧ 浮点数类型 float、double ,用于表示小数。 ‧ 字符类型 char ,用于表示各种语言的字母、标点符号甚至表情符号等。 ‧ 布尔类型 bool ,用于表示“是”与“否”判断。 基本数据类型以二进制的形式存储在计算机中。一个二进制位即为 1 比特。在绝大多数现代操作系统中,10 码力 | 379 页 | 18.48 MB | 10 月前3
Hello 算法 1.2.0 繁体中文 Java 版在計算機中,所有資料都是以二進位制數的形式儲存的,字元 char 也不例外。為了表示字元,我們需要建立 一套“字符集”,規定每個字元和二進位制數之間的一一對應關係。有了字符集之後,計算機就可以透過查表 完成二進位制數到字元的轉換。 3.4.1 ASCII 字符集 ASCII 碼是最早出現的字符集,其全稱為 American Standard Code for Information Interchange(美國 碼僅能夠表示英文。隨著計算機的全球化,誕生了一種能夠表示更多語言的 EASCII 字符集。它 在 ASCII 的 7 位基礎上擴展到 8 位,能夠表示 256 個不同的字元。 在世界範圍內,陸續出現了一批適用於不同地區的 EASCII 字符集。這些字符集的前 128 個字元統一為 ASCII 碼,後 128 個字元定義不同,以適應不同語言的需求。 3.4.2 GBK 字符集 後來人們發現,EASCII 碼仍然無法滿足許 碼仍然無法滿足許多語言的字元數量要求。比如漢字有近十萬個,光日常使用的就 有幾千個。中國國家標準總局於 1980 年釋出了 GB2312 字符集,其收錄了 6763 個漢字,基本滿足了漢字的 計算機處理需要。 然而,GB2312 無法處理部分罕見字和繁體字。GBK 字符集是在 GB2312 的基礎上擴展得到的,它共收錄了 21886 個漢字。在 GBK 的編碼方案中,ASCII 字元使用一個位元組表示,漢字使用兩個位元組表示。0 码力 | 379 页 | 18.79 MB | 10 月前3
共 34 条
- 1
- 2
- 3
- 4













