2023年Java相关课程系列笔记之一Java学习笔记.pdf

上传人:文*** 文档编号:94458589 上传时间:2023-07-31 格式:PDF 页数:116 大小:14.08MB
返回 下载 相关 举报
2023年Java相关课程系列笔记之一Java学习笔记.pdf_第1页
第1页 / 共116页
2023年Java相关课程系列笔记之一Java学习笔记.pdf_第2页
第2页 / 共116页
点击查看更多>>
资源描述

《2023年Java相关课程系列笔记之一Java学习笔记.pdf》由会员分享,可在线阅读,更多相关《2023年Java相关课程系列笔记之一Java学习笔记.pdf(116页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、Ja v a学 习 笔 记 Java相 关 课 程 系 列 笔 记 之 一笔 记 内 容 说 明 4 月 1 8日 的 五 天 Java训 练 营(刘 英 谦 老 师 主 讲,占 笔 记 内 容 10%);Java基 础 和 面 向 对 象(刘 苍 松 老 师 主 讲,占 笔 记 内 容 40%);Java S E核 心 I 和 Java S E核 心 II(范 传 奇 老 师 主 讲,占 笔 记 内 容 40%);其 他 视 频 及 书 籍 资 料(占 笔 记 内 容 10%)目 录、Java技 术 基 础.11.1 编 程 语 言.11.2 Java的 特 点.11.3 Java开 发 环

2、 境.11.4 Java开 发 环 境 配 置.21.5 Linux命 令 与 相 关 知 识.31.6 Eclipse/Myeclipse 程 序 结 构.3二、Java语 言 基 础.52.1 基 础 语 言 要 素.52.2 八 种 基 本 数 据 类 型.52.3 常 量 和 变 量.72.4 运 算 符 与 表 达 式.82.5 编 程 风 格.92.6 流 程 控 制 语 句.102.7 数 组.1 12.8 字 符 串.122.9 方 法 三 要 素.132.10 插 入 排 序.132.11 冒 泡 排 序.142.12 冒 泡 排 序:轻 气 泡 上 浮 的 方 式.152.

3、13 二 分 法 查 找.152.14 Java系 统 API方 法 调 用.162.15 二 进 制 基 础.162.16 Java 基 础 其 他 注 意 事 项.17三、面 向 对 象.193.1 类.193.2 对 象.203.3 包.203.4 方 法 及 其 调 用.203.5 引 用.203.6 访 问 控 制(封 装).203.7 构 造 器.213.8 super。、s u p e r.和 this。、this.233.9 重 载 和 重 写.243.10 继 承.253.11 static.303.12 final.323.13 多 态.333.14 抽 象 类.343.1

4、5 接 口.343.16 内 部 类.353.17 匿 名 类.373.18 二 维 数 组 和 对 象 数 组.383.19 其 他 注 意 事 项.39四、JavaSE 核 心 1.414.1 Object 类.414.2 String 类.434.3 StringUtils 类.464.4 StringBuilder 类.464.5 正 则 表 达 式.474.6 Date 类.494.7 Calendar 类.494.8 SimpleDateFormat 类.504.9 DateFormat 类.524.10 包 装 类.524.11 BigDecimal 类.544.12 Bigin

5、teger 类.544.13 Collection 集 合 框 架.554.14 List 集 合 的 实 现 类 ArrayList 和 LinkedList.564.15 Iterator 迭 代 器.614.16 泛 型.624.17 增 强 型 for循 环.634.18 L ist高 级 一 数 据 结 构:Queue队 列.644.19 L ist高 级 一 数 据 结 构:Deque栈.654.20 S et集 合 的 实 现 类 HashSet.664.21 M ap集 合 的 实 现 类 HashMap.684.22 单 例 模 式 和 模 版 方 法 模 式.72五、Jav

6、aSE 核 心 n.735.1 Java异 常 解 决 机 制.735.2 File 文 献 类.775.3 RandomAccessFile 类.805.4 基 本 流:FIS 和 FOS.845.5 缓 冲 字 节 高 级 流:BIS和 BOS.865.6 基 本 数 据 类 型 高 级 流:DIS和 DOS.875.7 字 符 高 级 流:ISR和 0S W.875.8 缓 冲 字 符 高 级 流:BR和 BW.895.9 文 献 字 符 高 级 流:F R和 FW.925.10 PrintWriter.935.11 对 象 序 列 化.945.12 Thread线 程 类 及 多 线

7、程.965.13 Socket 网 络 编 程.1025.14 线 程 池.1065.15 双 缓 冲 队 列.107一、Java技 术 基 础 1.1编 程 语 言 机 器 语 言:0 1 在 硬 件 直 接 执 行 汇 编 语 言:助 记 符 高 级 语 言:(J a v a运 营 比 C/C+慢)1)面 向 过 程 的 高 级 语 言:程 序 设 计 的 基 本 单 位 为 函 数,如:C/C+语 言。2)面 向 对 象 的 高 级 语 言:程 序 设 计 的 基 本 单 位 为 类,如:Java、C#=Java是 解 释 执 行 的 高 级 编 程 语 言 一 编 译 编 译 型 源

8、程 序 连 接 可 执 行 程 序 EXE执 行 Java源 程 序 编 译 字 节 码 程 序 解 释 执 行.class裸 机 操 作 系 统 解 释 器 Java虚 拟 机 1.2 Ja v a的 特 点 平 台 无 关 性、简 朴 性、面 向 对 象、健 壮 性、多 线 程、自 动 内 存 管 理。平 台 无 关 性:指 Java语 言 平 台 无 关,而 Jav a的 虚 拟 机 却 不 是,需 要 下 载 相 应 平 台 JVM虚 拟 机 的。自 动 内 存 管 理:对 临 时 存 储 的 数 据 自 动 进 行 回 收,释 放 内 存。如:引 用 类 型 的 变 量 没 有 指

9、向 时,被 回 收;程 序 执 行 完 后,局 部 变 量 被 回 收。1.3 Ja v a开 发 环 境 Java Developement Kit-Java开 发 工 具 包,简 称 J D K,是 由 Sun公 司 提 供 的 一 个 免 费 的 Jav a开 发 工 具,编 程 人 员 和 最 终 用 户 可 以 运 用 这 个 工 具 来 编 译、运 营 Jav a程 序。目 前 版 本 有 JDK1.0.JDK 1.1、JDK1.2.JDK 1.3、JDK 1.4、JDK1.5(J2SE5.0)、JDK1.6(J2SE6.0)、JDK 1.7(J2SE7.0)。JDK 结 构:JD

10、K卜 开 发 工 具(Tools)命 令:java、javac jar rmic.|-JRE(Java基 本 运 营 环 境)卜-系 统 A PI库,系 统 类 库 I 系 统 带 来 的 标 准 程 序 库,标 准 API|J VM java虚 拟 机 ja v a语 言 的 执 行 环 境 1.4 Ja v a开 发 环 境 配 置 安 装 完 JD K之 后,不 能 立 刻 使 用,需 要 设 立 环 境 变 量:1)设 立 PATH:D:Javajdkl.6.0bin(指 向 JD K中 b in文 献 夹,有 各 种 编 译 命 令)。2)CLASSPATH:告 诉 Java程 序

11、去 哪 里 查 找 第 三 方 和 自 定 义 类,假 如.class文 献 和 类 源 文 献 在 同 一 文 献 夹 内,则 不 需 要 配 置 classp ath,后 续 有 包,则 需 要。A.Windows:在 命 令 行 执 行 set CLASSPATH二 E:workspace1304bin(临 时 环 境 配 置)java day02.Demo 1 注 意 事 项:E:set classpath=c:(不 加 分 号 就 不 找 当 前 程 径)=.;c:;d:;(先 找 classp ath,若 无,再 找 当 前 程 径)C、D两 盘 有 同 名.c la ss文 献,

12、classpath设 立 为 D 盘,而 命 令 行 窗 口 当 前 盘 符 为 C 盘,则 JV M现 找 classpath途 径,后 找 当 前 程 径。B.Linux:在 控 制 台 执 行 设 立 CLASSPATH环 境 变 量,指 向 package所 在 的 目 录,一 般 是 项 目 文 献 夹 中 的 b in目 录。执 行 java package.ClassName(包 名 必 须 写)。export CLASSPATH=/home/softO 1/workspace/1304/bin(临 时 环 境 配 置)java dayOl.HelloWorldjava-cp/h

13、ome/softO 1/workspace/1304/bin dayOl.HelloWorld(二 合 一)注 意 事 项:Windows根 目 录 是 反 斜 线:Linux根 目 录 是 斜 线:/1.5 Linux命 令 与 相 关 知 识 I)Linux无 盘 符,只 有 一 个 根 目 录(root)2)终 端=控 制 台 二 二 命 令 行 窗 口 3)pwd:打 印 当 前 工 作 目 录,显 示 当 前 工 作 目 录 的 位 置 4)1s:列 表 显 示 目 录 内 容,默 认 显 示 当 前 目 录 内 容 5)cd:改 变 当 前 工 作 目 录;c d后 不 加 参 数

14、=返 回 hom e文 献 夹;c d:返 回 home;cd/:切 换 到 根 目 录;cd 返 回 上 一 层 目 录(相 对 的);6)mkdir:创 建 文 献 夹(目 录)注 意:目 录=文 献 夹 7)rm:删 除 文 献;rm xx xx:可 删 多 个 文 献;rm-rf xx:-为 减 号,i表 递 归,f表 强 制 8)cat xx:显 示 文 本 文 献 内 容 9)启 动 Java开 发 工 具:cd/opt/eclipse./eclipse.表 当 前 目 录 下 10)绝 对 途 径:/home(以/开 始 为 绝 对 途 径,相 对 于 根 目 录)相 对 途 径

15、:home(相 对 于 当 前 工 作 目 录)11)home(用 户 主 目 录,用 户 的 家):/home/username 如:/home/softO 112)主 目 录(home):有 最 大 访 问 权 限:什 么 都 能 干,增 删 改 查、建 目 录 等 其 他 地 方:一 般 只 能 查 看,不 能 增 删 改 查、创 建 目 录 等 1.6 Eclipse/Myeclipse 程 序 结 构 Project项 目 文 献 卜-src源 文 献|Package 包I I-.java源 文 献|bin|Package 包 I-.class字 节 码 程 序 注 意 事 项:My

16、eclipse5.5 消 耗 少,Myeclipse6.5 最 稳 定二、Java语 言 基 础 2.1基 础 语 言 要 素 1)标 记 符:给 类、方 法、变 量 起 的 名 字 A.必 须 以 字 母 或 下 划 线 或$符 号 开 始,其 余 字 符 可 以 是 字 母、数 字、$符 号 和 下 划 线。B.只 能 包 含 两 个 特 殊 字 符,即 下 划 线.和 美 元 符 号$。不 允 许 有 任 何 其 他 特 殊 字 符。C.标 记 符 不 能 包 含 空 格。D.区 分 大 小 写。2)关 键 字:只 有 系 统 才 干 用 的 标 记 符 注 意 事 项:true、fal

17、se、null不 是 关 键 字!是 字 面 量。m ain不 是 关 键 字!但 是 是 一 个 特 殊 单 词,可 以 被 JV M辨 认,主 函 数 是 固 定 格 式,作 为 程 序 的 入 口。3)注 释:单 行 注 释:多 行 注 释:/*/文 档 注 释:/*/注 意 事 项:开 发 中 类 前、属 性 前、方 法 前,必 须 有 文 档 注 视。2.2八 种 基 本 数 据 类 型 1)四 种 整 数 类 型(byte、short、int、long):byte:8位,用 于 表 达 最 小 数 据 单 位,如 文 献 中 数 据,-128127short:16 位,很 少 用,

18、-32768 32767int:32 位、最 常 用,-2A31-12A31(21 亿)long:6 4位、次 常 用 注 意 事 项:inti=5;5 叫 直 接 量(或 字 面 量),即 直 接 写 出 的 常 数。整 数 字 面 量 默 认 都 为 in t类 型,所 以 在 定 义 的 long型 数 据 后 面 加 L 或 1。小 于 3 2位 数 的 变 量,都 按 int结 果 计 算。强 转 符 比 数 学 运 算 符 优 先 级 高。见 常 量 与 变 量 中 的 例 子。2)两 种 浮 点 数 类 型(float、double):float:3 2位,后 缀 F 或 f,1

19、位 符 号 位,8位 指 数,2 3位 有 效 尾 数。double:6 4位,最 常 用,后 缀 D 或 d,1位 符 号 位,11位 指 数,5 2位 有 效 尾 数。注 意 事 项:二 进 制 浮 点 数:=.0*2=10101000.10*270(2 次 方)=1010100.010*27 1(3 次 方)=.*27010(10 次 方)尾 数:.指 数:1 0 1 0基 数:2 浮 点 数 字 面 量 默 认 都 为 double类 型,所 以 在 定 义 的 flo at型 数 据 后 面 加 F或 f;double类 型 可 不 写 后 缀,但 在 小 数 计 算 中 一 定 要

20、 写 D 或 X.X。float的 精 度 没 有 long高,有 效 位 数(尾 数)短。float的 范 围 大 于 long指 数 可 以 很 大。浮 点 数 是 不 精 确 的,不 能 对 浮 点 数 进 行 精 确 比 较。3)一 种 字 符 类 型(char):char:1 6位,是 整 数 类 型,用 单 引 号 括 起 来 的 1 个 字 符(可 以 是 一 个 中 文 字 符),使 用 Unicode 码 代 表 字 符,02Al 6-1(65535)。注 意 事 项:不 能 为 0 个 字 符。转 义 字 符:n换 行 r回 车 tT ab字 符 双 引 号 表 达 一 个

21、 两 字 符 c h a r中 间 用“+”连 接,内 部 先 把 字 符 转 成 in t类 型,再 进 行 加 法 运 算,c h a r本 质 就 是 个 数!二 进 制 的,显 示 的 时 候,通 过“解 决”显 示 为 字 符。4)一 种 布 尔 类 型(boolean):true真 和 false假。5)类 型 转 换:char-自 动 转 换:byte short int long float double强 制 转 换:会 损 失 精 度,产 生 误 差,小 数 点 以 后 的 数 字 所 有 舍 弃。容 易 超 过 取 值 范 围。2.3常 量 和 变 量 变 量:内 存 中

22、 一 块 存 储 空 间,可 保 存 当 前 数 据。在 程 序 运 营 过 程 中,其 值 是 可 以 改 变 的 量。1)必 须 声 明 并 且 初 始 化 以 后 使 用(在 同 一 个 作 用 域 中 不 能 反 复 声 明 变 量)!2)变 量 必 须 有 明 确 类 型(Java是 强 类 型 语 言)。3)变 量 有 作 用 域(变 量 在 声 明 的 地 方 开 始,到 块()结 束)。变 量 作 用 域 越 小 越 好。4)局 部 变 量 在 使 用 前 一 定 要 初 始 化!成 员 变 量 在 对 象 被 创 建 后 有 默 认 值,可 直 接 用。5)在 方 法 中 定

23、 义 的 局 部 变 量 在 该 方 法 被 加 越 时 创 建。常 量:在 程 序 运 营 过 程 中,其 值 不 可 以 改 变 的 量。注 意 事 项:字 面 量、常 量 和 变 量 的 运 算 机 制 不 同,字 面 量、常 量 由 编 译 器 计 算,变 量 由 运 算 器 解 决,目 的 是 为 了 提 高 效 率。eg:小 于 3 2位 数 的 字 面 量 解 决 byte bl=1;byte b2=3;/byteb3=bl+b2;编 译 错 误,按 照 in t结 果,需 要 强 制 转 换 byte b3=(byte)(bl+b2);/byte b3=(byte)bl+(by

24、te)b2;编 译 错 误!两 个 byte、short、char 相 加 还 是 按 int 算 System.oul.println(b3);选 择 结 果:A 编 译 错 误 B运 营 异 常 C 4 D b3byte b4=1+3;/字 面 量 运 算,编 译 期 间 替 换 为 4,字 面 量 4/byte b4=4;不 超 过 byte就 可 以 赋 值 不 管 是 常 量 还 是 变 量,必 须 先 定 义,才 可 以 使 用。即 先 在 内 存 中 开 辟 存 储 空 间,才 可 以 往 里 面 放 入 数 据。不 管 是 常 量 还 是 变 量,其 存 储 空 间 是 有 数

25、 据 类 型 的 差 别 的,即 有 些 变 量 的 存 储 空 间 用 于 存 储 整 数,有 些 变 量 的 存 储 空 间 用 于 存 储 小 数。2.4运 算 符 与 表 达 式 1)数 学 运 算:+-*/%+注 意 事 项:+-*/两 端 的 变 量 必 须 是 同 种 类 型,并 返 回 同 种 类 型。%取 余 运 算,负 数 的 余 数 符 号 与 被 模 数 符 号 相 同,-1%5=-I,1%-5=1;Num%n,n 0,结 果 范 围 0,n),是 周 期 函 数。注 意 整 除 问 题:1/2=0(整 数 的 除 法 是 整 除)1.0/2=05 1D/2=O.5 单

26、 独 的 前、后 自 增 或 自 减 是 没 区 别 的,有 了 赋 值 语 句 或 返 回 值,则 值 不 同!e g l:自 增 自 减 in ta=l;a=a+;System.out.println(a 的 值:+a);第 1步:后+,先 拟 定 表 达 式 a+的 值(当 前 a的 值)a+1第 2 步:+,给 a 力 口 1 a 一 一 2第 3步:最 后 赋 值 运 算,把 a+整 个 表 达 式 的 值 赋 值 给 a a-1a被 赋 值 两 次,第 1次 a=2,第 2 次 把 1赋 值 给 1eg2:自 增 自 减 x,y,z 分 别 为 5,6,7 计 算 z+=一 y*z

27、+;/x=5,y=5,z=42z=z+y*z+f 42=7+5*7 从 左 至 U 右 入 栈,入 的 是 值 eg3:取 出 数 字 的 每 一 位 d=num%10;获 取 num的 最 后 一 位 数 num/=10;/消 除 num的 最 后-位 2)位 运 算:&|(取 反)A(异 或)注 意 事 项:一 个 数 异 或 同 一 个 数 两 次,结 果 还 是 那 个 数。I:上 下 对 齐,有 1个 1则 为 1;&:上 下 对 齐,有 1个 0 则 为 0;(都 为 二 进 制)&相 称 于 乘 法,|相 称 于 加 法;&:有 0 则 为 0,|:有 1则 为 1,两 数相 同

28、 为 0,不 同 为 13)关 系 运 算 符:=b?a:i j?i:j 相 称 于 a b?a:(i j?i:j)三 目 运 算 符 中:第 二 个 表 达 式 和 第 三 个 表 达 式 中 假 如 都 为 基 本 数 据 类 型,整 个 表 达 式 的 运 算 结 果 由 容 量 高 的 决 定。如:int x=4;x 4?99.9:9;9 9.9是 double类 型,而 9 是 in t类 型,double容 量 高,所 以 最 后 结 果 为 9.9。7)运 算 符 优 先 级:括 号 自 增 自 减!算 数 运 算 符,位 移 运 算 关 系 运 算 逻 辑 运 算 条 件 运

29、算 赋 值 运 算 2.5编 程 风 格 MyEclipse/Eclipse中 出 现 的 红 色 叉 叉:编 译 错 误 编 译 错 误:ja v a编 译 器 在 将 Java源 代 码 编 译 为 class文 献 的 过 程 出 现 的 错 误,一 般 是 语 法 使 用 错 误!当 有 编 译 错 误 时 候,是 没 有 class文 献 产 生,也 就 不 能 运 营 程 序。Java程 序 结 构:package demo.dayOl;必 须 是 小 写 字 母,多 个 单 现 用.琨 开 i磔 ort java.util.Scanner;/Java API 一 定 在 当 前

30、库 中 存 在 public class HelloWorld 类 名 每 个 单 词 首 字 母 要 大 写 类 体 中 的 成 员,要 缩 进 2个 Tab宽 public static void main(String args)方 法 中 成 员 也 要 缩 进 1个 Tab宽 Java的 语 句 以 英 文 分 号;为 结 尾,不 是 中 文 的 分 号!括 号 要 配 对 使 用:先 写 出 成 对 的 括 号,然 后 在 中 间 填 代 码 Scanner console=new Scanner(System.in);”/方 法 体 的 结 束 也 要 和 方 法 的 声 明 位

31、 置 对 齐 类 体 class body 括 号 要 配 对,声 明 开 始 的 位 置 和 结 束 的 位 置 要 对 齐 2.6流 程 控 制 语 句 1)选 择 控 制 语 句 if语 句:i f、if-else、if-else if:可 以 解 决 一 切 分 支 判 断。格 式:if(判 断)、if(判 断)else、if(判 断)else if(判 断)switch 语 句:switch(必 须 整 数 类 型)case 常 量 1:case 常 量 2:.;注 意 事 项:in t类 型 指:byte、s h o r t i n t,只 能 写 long类 型,要 写 也 必

32、须 强 转 成 in t类 型;而 byte、short为 自 动 转 换 成 int。swtich-case:若 case中 无 符 合 的 数,并 且 default写 在 最 前(无 break时),则 为 顺 序 执 行,有 break或 则 退 出。swtich-case:若 c a s e中 无 符 合 的 数,并 且 default写 在 最 后,则 执 行 defaulto swtich-case:若 c a s e中 有 符 合 的 数,并 且 default写 在 最 后,并 且 default前 面 的 case没 有 break时,default也 会 执 行。2)循

33、环 控 制 语 句 for:最 常 用,用 在 与 次 数 有 关 的 循 环 解 决,甚 至 只 用 f o r可 以 解 决 任 何 循 环 问 题。注 意 事 项:f o r中 定 义 的 用 于 控 制 次 数 的 循 环 变 量,只 在 f o r中 有 效,for结 束 则 循 环 变 量 被 释 放(回 收)。while:很 常 用,用 在 循 环 时 候 要 先 检 查 循 环 条 件 再 解 决 循 环 体,用 在 与 次 数 无 关的 情 况。假 如 不 能 明 确 结 束 条 件 的 时 候,先 使 用 while(true),在 适 当 条 件 使 用 i f 语 句

34、加 break结 束 循 环。do-while:在 循 环 最 后 判 断 是 否 结 束 的 循 环。如:使 用 while(true)实 现 循 环 的 时 候,结 束 条 件 break在 w hile循 环 体 的 最 后,就 可 以 使 用 do-while o do-w hile的 结 束 条 件 经 常 是“否 认 逻 辑 条 件”,不 便 于 思 考 业 务 逻 辑,使 用 的 时 候 需 要 注 意。可 以 运 用 while(true)+break 替 换。循 环 三 要 素:A.循 环 变 量 初 值 B.循 环 条 件 C.循 环 变 量 增 量(是 循 环 趋 于 结

35、 束 的 表 达 式)f o r和 w hile循 环 体 中 仅 一 条 语 句,也 要 补 全 卜 当 有 多 条 语 句,且 不 写 时,它 们 只 执 行 紧 跟 着 的 第 一 条 语 句。循 环 的 替 换:while(布 尔 表 达 式)等 价 for(;布 尔 表 达 式;)while(true)等 价 for(;)while(true)+break 替 换 do while(布 尔 表 达 式);for(;)+break 替 换 do while(布 尔 表 达 式);3)跳 转 控 制 语 句 continue:退 出 本 次 循 环,直 接 执 行 下 一 次 循 环 b

36、reak:退 出 所 有 循 环 2.7数 组 类 型 一 致 的 一 组 数 据,相 称 于 集 合 概 念,在 软 件 中 解 决 一 组,一 堆 x x 数 据 时 候 使 用 数 组。1)数 组 变 量:是 引 用 类 型 变 量(不 是 基 本 变 量)引 用 变 量 通 过 数 组 的 内 存 地 址 位 置 引 用 了 一 个 数 组(数 组 对 象),即 栓 到 数 组 对 象 的 绳 子。eg:数 组 变 量 的 赋 值 int ary=new int3;/ary-0,0,0-arylint aryl=ary;/ary的 地 址 赋 值 给 aryl,a ry与 a ry l

37、绑 定 了 同 一 个 数 组/ary 与 ary 1 5 是 同 一 个 元 素,数 组 变 量 不 是 数 组(数 组 对 象)2)数 组(数 组 对 象)有 3 种 创 建(初 始 化)方 式:new in410000给 元 素 数 量,适 合 不 知 道 具 体 元 素,或 元 素 数 量 较 多 时 new int|3,4,5不 需 要 给 出 数 量,直 接 初 始 化 具 体 元 素 适 合 知 道 数 组 的 元 素。2,3,4)静 态 初 始 化,是 简 化 版,只 能 用 在 声 明 数 组 变 量 的 时 候 直 接 初 始 化,不 能 用 于 赋 值 等 情 况。eg:

38、数 组 初 始 化 intJ aryl=new int2,3,4;创 建 数 组 时 候 直 接 初 始 化 元 素 int ary2=2,3,4;数 组 静 态 初 始 化,只 能 在 声 明 变 量 的 同 时 直 接 赋 值/加 72=4,5,6;编 译 错 误,不 能 用 于 赋 值 等 情 况 ary2=new int4,5,6);3)数 组 元 素 的 访 问:数 组 长 度:长 度 使 用 属 性 访 问,ary.length获 取 数 组 下 标。数 组 下 标:范 围:0 length-1就 是 0,length),超 范 围 访 问 会 出 现 下 标 越 界 异 常。使

39、用 index访 问 数 组 元 素:ary2。迭 代(遍 历):就 是 将 数 组 元 素 逐 个 解 决 一 遍 的 方 法。4)数 组 默 认 初 始 化 值:根 据 数 组 类 型 的 不 同,默 认 初 始 化 值 为:0(整 数)、0.0(浮 点 数)、false(布 尔 类 型)、u0000(c h a r字 符 类 型,显 示 无 效 果,相 称 于 空 格,编 码 为 0的 字 符,是 控 制 字 符,强 转 为 i n t时 显 示 0)、null(strin g类 型,什 么 都 没 有,空 值 的 意 思)。5)数 组 的 复 制:数 组 变 量 的 赋 值,是 并 不

40、 会 复 制 数 组 对 象,是 两 个 变 量 引 用 了 同 一 个 数 组 对 象。数 组 复 制 的 本 质 是 创 建 了 新 数 组,将 原 数 组 的 内 容 复 制 过 来。6)数 组 的 扩 容:创 建 新 数 组,新 数 组 容 量 大 于 原 数 组,将 原 数 组 内 容 复 制 到 新 数 组,并 且 丢 弃 原 数 组,简 朴 说:就 是 更 换 更 大 的 数 组 对 象。System.arraycopyO用 于 复 制 数 组 内 容,简 化 版 的 数 组 复 制 方 法:Arrays.copyOf。方 法,但 需 JKD1.5+。2.8字 符 串 字 符 串

41、(string):永 远 用 双 引 号(英 文 状 态 下),用 字 符 串 连 接 任 何 数 据(整 数),都 会 默 认 的 转 化 为 字 符 串 类 型。字 符 串 与 基 本 数 据 类 型 链 接 的 问 题:假 如 第 一 个 是 字 符 串 那 么 后 续 就 都 按 字 符 串 解 决,如 System.out.println(,(Result)+6+6);那 么 结 果 就 是(R esult)66,假 如 第 一 个 和 第 二 个 第 n个 都 是 基 本 数 据,第 n+1是 字 符 串 类 型,那 么 前 n 个 都 按 加 法 计 算 出 结 果 在 与 字

42、符 串 连 接。如 下 例 中 的 System.out.println(l+2+java+3+4);结 果 为 3java34oeg:字 符 串 前 后 的“+”都 是 连 接 符!不 是 加 法 运 算 符!System.out.println(A,+,B);/ABSystem.out.println(,A+B,);/131System.out.println(l+2+,Java,+3+4);/3java34 注 意 事 项:比 较 字 符 串 是 否 相 等 必 须 使 用 e q u a ls方 法!不 能 使 用=。T.equals(cmd)比 cmd.equals(T)要 好。2.

43、9 方 法 三 要 素 方 法:method(函 数 function=功 能)y=f(x)1)方 法 的 重 要 三 要 素:方 法 名、参 数 列 表、返 回 值。2)什 么 是 方 法:一 个 算 法 逻 辑 功 能 的 封 装,是 一 般 完 毕 一 个 业 务 功 能,如:登 录 系 统,创 建 联 系 人,简 朴 说:方 法 是 动 作,是 动 词。3)方 法 名:一 般 按 照 方 法 实 现 的 功 能 定 名,一 般 使 用 动 词 定 义,一 般 使 用 小 写 字 母 开 头,第 二 个 单 词 开 始,单 词 首 字 母 大 写。如:createContact()4)参

44、 数 列 表:是 方 法 的 前 提 条 件,是 方 法 执 行 依 据,是 数 据。如:login(String id,String pw d),参 数 的 传 递 看 定 义 的 类 型 及 顺 序,不 看 参 数 名。5)方 法 返 回 值:功 能 执 行 的 结 果,方 法 必 须 定 义 返 回 值,并 且 方 法 中 必 须 使 用 return语 句 返 回 数 据;假 如 无 返 回 值 则 定 义 为 v o i d,此 时 return语 句 可 写 可 不 写;返 回 结 果 只 能 有 一 个,若 返 回 多 个 结 果,要 用 数 组 返 回(返 回 多 个 值)。注

45、 意 事 项:递 归 调 用:方 法 中 调 用 了 方 法 自 身,用 递 归 解 决 问 题 比 较 简 练,只 需 考 虑 一 层 逻 辑 即 可!但 是 需 要 有 经 验。一 定 要 有 结 束 条 件!如:f(l)=l;递 归 层 次 不 能 太 深。总 之:慎 用 递 归!2.1 0 插 入 排 序 将 数 组 中 每 个 元 素 与 第 一 个 元 素 比 较,假 如 这 个 元 素 小 于 第 一 个 元 素,则 互 换 这 两 个 元素 循 环 第 1条 规 则,找 出 最 小 元 素,放 于 第 1个 位 置 通 过 n-1轮 比 较 完 毕 排 序。for(inti=1

46、;i=0&k arrfj;j)arrj+1=arrj;/移 动 元 素)arrj+1=k;/插 入 元 素 System.out.println(Arrays.toString(arr);)2.1 1冒 泡 排 序 比 较 相 邻 的 元 素,将 小 的 放 到 前 面。for(inti=0;i arr.length-1;i+)boolean isSwap=false;for(int j=0;j arrj+1)int t=arr|j;arr|j=arrfj+1;arrj+1=t;isSwap=true;)if(!isSwap)break;System.out.println(Arrays.to

47、String(arr);2.1 2冒 泡 排 序:轻 气 泡 上 浮 的 方 式 冒 泡 排 序 法 可 以 使 用 大 气 泡 沉 底 的 方 式,也 可 以 使 用 轻 气 泡 上 浮 的 方 式 实 现。如 下 为 使 用 轻 气 泡 上 浮 的 方 式 实 现 冒 泡 排 序 算 法。for(int i=0;i i;j-)if(arrj arrj-1)int t=arr|j;arr|j=arrj-1;arrj-1=t;sSwap=true;)if(!isSwap)break;System.out.println(Arrays.toString(arr);2.13二 分 法 查 找 in

48、tlow=0;inthigh=arr.length-1;intmid=-1;while(low=high)mid=(low+high)/2;if(arrmid value)high=mid-1;else break;)if(low=high)System.out.println(可 以 找 到:index=+mid+else System.out.println(无 法 找 到!);二 分 法 思 想 是 取 中,比 较:1)求 有 序 序 列 a rr的 中 间 位 置 mid。2)k 为 要 查 找 的 数 字。若 arrmid=k,查 找 成 功;若 arrlmidj k,在 前 半 段

49、 中 继 续 进 行 二 分 查 找;若 arrmid k,则 在 后 半 段 中 继 续 进 行 二 分 查 找。假 如 有 一 组 数 为 3、12、24、36、55、68、75、8 8要 查 给 定 的 值 k=24。可 设 三 个 变 量 low、mid、high分 别 指 向 数 据 的 上 界,中 间 和 下 界,mid=(low+high)/2.1)开 始 令 low=0(指 向 3),high=7(指 向 8 8),则 mid=3(指 向 3 6)。由 于 k m id,故 拟 定 应 在 后 半 段 中 查 找。3)令 新 的 low=mid+l=2(指 向 24),而 hi

50、gh=2(指 向 24)不 变,则 新 的 m id=2,此 时 k=arrm id,查 找 成 功。假 如 要 查 找 的 数 不 是 数 列 中 的 数,例 如 k=2 5,当 第 四 次 判 断 时,k m id 2,在 后 边 半 段 查 找,令 lo w=m id+l,即 low=3(指 向 36),high=2(指 向 24)出 现 lowhigh的 情 况,表 达 查 找 不 成 功。2.14 Ja v a系 统 A P I方 法 调 用 Arrays类,是 数 组 的 工 具 类,包 含 很 多 数 组 有 关 的 工 具 方 法。如:1)toSlring。连 接 数 组 元

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com