2022年Java面试题100题.pdf





《2022年Java面试题100题.pdf》由会员分享,可在线阅读,更多相关《2022年Java面试题100题.pdf(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2022年 Java面 试 题 大 全 100题(一)一、Java基 础 篇 1、String s=xyz和 String s=new String(xyz)区 另 U?【仅 供 参 考】两 个 语 句 都 会 先 去 字 符 串 常 量 池 中 检 查 是 否 已 经 存 在“xyz”,如 果 有 则 直 接 使 用,如 果 没 有 则 会 在 常 量 池 中 创 建“xyz”对 象。另 外,String s=new String(xyz)还 会 通 过 new String()在 堆 里 创 建 一 个 内 容 与 xyz相 同 的 对 象 实 例。所 以 前 者 其 实 理 解 为 被
2、后 者 的 所 包 含。2、如 何 实 现 对 象 克 隆?【仅 供 参 考】实 现 Cloneable接 口,重 写 clone()方 法。这 种 方 式 是 浅 拷 贝,即 如 果 类 中 属 性 有 自 定 义 引 用 类 型,只 拷 贝 引 用,不 拷 贝 引 用 指 向 的 对 象。如 果 对 象 的 属 性 的 Class也 实 现 Cloneable接 口,那 么 在 克 隆 对 象 时 也 会 克 隆 属 性,即 深 拷 贝。结 合 序 列 化,深 拷 贝。通 过 org.apache,commons中 的 工 具 类 BeanUtils和 PropertyUtils进 行 对
3、 象 复 制。3 抽 象 类(abstract class)和 接 口(interface)有 什 么 区 别?【仅 供 参 考】抽 象 类 只 能 单 继 承,接 口 可 以 多 实 现。抽 象 类 可 以 有 构 造 方 法,接 口 中 不 能 有 构 造 方 法。抽 象 类 中 可 以 有 成 员 变 量,接 口 中 没 有 成 员 变 量,只 能 有 常 量(默 认 就 是 public staticfinal)抽 象 类 中 可 以 包 含 非 抽 象 的 方 法,在 Java 7 之 前 接 口 中 的 所 有 方 法 都 是 抽 象 的,在 Java 8之 后,接 口 支 持 非
4、 抽 象 方 法:default方 法、静 态 方 法 等。Java 9 支 持 私 有 方 法、私 有 静 态 方 法。抽 象 类 中 的 方 法 类 型 可 以 是 任 意 修 饰 符,Java 8 之 前 接 口 中 的 方 法 只 能 是 public类 型,Java9 支 持 private类 型。设 计 思 想 的 区 别:接 口 是 自 上 而 下 的 抽 象 过 程,接 口 规 范 了 某 些 行 为,是 对 某 一 行 为 的 抽 象。我 需 要 这 个 行 为,我 就 去 实 现 某 个 接 口,但 是 具 体 这 个 行 为 怎 么 实 现,完 全 由 自 己 决 定。抽
5、 象 类 是 自 下 而 上 的 抽 象 过 程,抽 象 类 提 供 了 通 用 实 现,是 对 某 一 类 事 物 的 抽 象。我 们 在 写 实 现 类 的 时 候,发 现 某 些 实 现 类 具 有 几 乎 相 同 的 实 现,因 此 我 们 将 这 些 相 同 的 实 现 抽 取 出 来 成 为 抽 象 类,然 后 如 果 有 一 些 差 异 点,则 可 以 提 供 抽 象 方 法 来 支 持 自 定 义 实 现。我 在 网 上 看 到 有 个 说 法,挺 形 象 的:普 通 类 像 亲 爹,他 有 啥 都 是 你 的。第 1/22页抽 象 类 像 叔 伯,有 一 部 分 会 给 你,
6、还 能 指 导 你 做 事 的 方 法。接 口 像 干 爹,可 以 给 你 指 引 方 法,但 是 做 成 啥 样 得 你 自 己 努 力 实 现。4、为 什 么 要 使 用 克 隆?【仅 供 参 考】克 隆 的 对 象 可 能 包 含 一 些 已 经 修 改 过 的 属 性,而 new出 来 的 对 象 的 属 性 都 还 是 初 始 化 时 候 的 值,所 以 当 需 要 一 个 新 的 对 象 来 保 存 当 前 对 象 的“状 态”就 靠 克 隆 方 法 了。5、抽 象 类 必 须 要 有 抽 象 方 法 吗?【仅 供 参 考】不 需 要,抽 象 类 不 一 定 非 要 有 抽 象 方
7、 法。示 例 代 码:abstract classCat(publicstaticvoidsayHi()System,out.printin(hi);上 面 代 码,抽 象 类 并 没 有 抽 象 方 法 但 完 全 可 以 正 常 运 行。6、String类 可 以 继 承 吗?【仅 供 参 考】不 行。String类 使 用 final修 饰,无 法 被 继 承。7、Files的 常 用 方 法 都 有 哪 些?【仅 供 参 考】Files,exists():检 测 文 件 路 径 是 否 存 在。Files.createFileO:创 建 文 件。Files.createDirector
8、y():创 建 文 件 夹。Files,delete():删 除 一 个 文 件 或 目 录。Files,copy():复 制 文 件。Files,move():移 动 文 件。Files.size():查 看 文 件 个 数。Files.read():读 取 文 件。Files,write():写 入 文 件。8、Java中 10流 分 为 几 种?【仅 供 参 考】按 功 能 来 分:输 入 流(input)、输 出 流(output)o按 类 型 来 分:字 节 流 和 字 符 流。字 节 流 和 字 符 流 的 区 别 是:字 节 流 按 8 位 传 输 以 字 节 为 单 位 输 入
9、 输 出 数 据,字 符 流 按 16位 传 第 2/22页输 以 字 符 为 单 位 输 入 输 出 数 据。9、说 说 类 实 例 化 的 顺 序【仅 供 参 考】静 态 属 性,静 态 代 码 块。普 通 属 性,普 通 代 码 块。构 造 方 法。10、阐 述 final、finally,finalize 的 区 别。【仅 供 参 考】其 实 是 三 个 完 全 不 相 关 的 东 西,只 是 长 的 有 点 像。final如 上 所 示。finally:finally是 对 Java异 常 处 理 机 制 的 最 佳 补 充,通 常 配 合 try catch使 用,用 于 存 放
10、那 些 无 论 是 否 出 现 异 常 都 一 定 会 执 行 的 代 码。在 实 际 使 用 中,通 常 用 于 释 放 锁、数 据 库 连 接 等 资 源,把 资 源 释 放 方 法 放 到 finally中,可 以 大 大 降 低 程 序 出 错 的 几 率。finalize:Object中 的 方 法,在 垃 圾 收 集 器 将 对 象 从 内 存 中 清 除 出 去 之 前 做 必 要 的 清 理 工 作。finalize。方 法 仅 作 为 了 解 即 可,在 Java 9 中 该 方 法 已 经 被 标 记 为 废 弃,并 添 加 新 的 java.lang.ref.Cleane
11、r,提 供 了 更 灵 活 和 有 效 的 方 法 来 释 放 资 源。这 也 侧 面 说 明 了,这 个 方 法 的 设 计 是 失 败 的,因 此 更 加 不 能 去 使 用 它。11、Java中 的 final关 键 字 有 哪 些 用 法?【仅 供 参 考】修 饰 类:该 类 不 能 再 派 生 出 新 的 子 类,不 能 作 为 父 类 被 继 承。因 此,一 个 类 不 能 同 时 被 声 明 为 abstract 和 final。修 饰 方 法:该 方 法 不 能 被 子 类 重 写。修 饰 变 量:该 变 量 必 须 在 声 明 时 给 定 初 值,而 在 以 后 只 能 读
12、取,不 可 修 改。如 果 变 量 是 对 象,则 指 的 是 引 用 不 可 修 改,但 是 对 象 的 属 性 还 是 可 以 修 改 的。12、深 拷 贝 和 浅 拷 贝 区 别 是 什 么?【仅 供 参 考】浅 克 隆:当 对 象 被 复 制 时 只 复 制 它 本 身 和 其 中 包 含 的 值 类 型 的 成 员 变 量,而 引 用 类 型 的 成 员 对 象 并 没 有 复 制。深 克 隆:除 了 对 象 本 身 被 复 制 外,对 象 所 包 含 的 所 有 成 员 变 量 也 将 复 制。13、Java创 建 对 象 有 几 种 方 式?【仅 供 参 考】Java创 建 对
13、象 有 以 下 几 种 方 式:用 new语 句 创 建 对 象。使 用 反 射,使 用 Class.newlnstance()创 建 对 象。调 用 对 象 的 clone。方 法。运 用 反 序 列 化 手 段,调 用 java.io.ObjectlnputStream对 象 的 readObject()方 法。第 3/22页14、如 何 将 字 符 串 反 转?【仅 供 参 考】使 用 StringBuilder 或 者 stringBuffer 的 reverse()方 法。示 例 代 码:/StringBuffer reverseStringBuffer stringBuffer=n
14、ew StringBuffer();stringBuffer.append(abcdefg);System,out.printin(stringBuffer.reverse();/gfedcba/StringBuilder reverseStringBuilder StringBuilder=new StringBuilder();StringBuilder.append(abcdefg);System,out.printin(StringBuilder.reverse();/gfedcba15、构 造 器 是 否 可 被 重 写?【仅 供 参 考】Constructor不 能 被 overr
15、ide(重 写),但 是 可 以 overload(重 载),所 以 你 可 以 看 到 个 类 中 有 多 个 构 造 函 数 的 情 况。16、面 向 对 象 和 面 向 过 程 的 区 别?【仅 供 参 考】面 向 对 象 和 面 向 过 程 是 一 种 软 件 开 发 思 想。面 向 过 程 就 是 分 析 出 解 决 问 题 所 需 要 的 步 骤,然 后 用 函 数 按 这 些 步 骤 实 现,使 用 的 时 候 依 次 调 用 就 可 以 了。面 向 对 象 是 把 构 成 问 题 事 务 分 解 成 各 个 对 象,分 别 设 计 这 些 对 象,然 后 将 他 们 组 装 成
16、 有 完 整 功 能 的 系 统。面 向 过 程 只 用 函 数 实 现,面 向 对 象 是 用 类 实 现 各 个 功 能 模 块。以 五 子 棋 为 例,面 向 过 程 的 设 计 思 路 就 是 首 先 分 析 问 题 的 步 骤:1、开 始 游 戏,2、黑 子 先 走,3、绘 制 画 面,4、判 断 输 赢,5、轮 到 白 子,6、绘 制 画 面,7、判 断 输 赢,8、返 回 步 骤 2,9、输 出 最 后 结 果。把 上 面 每 个 步 骤 用 分 别 的 函 数 来 实 现,问 题 就 解 决 了。而 面 向 对 象 的 设 计 则 是 从 另 外 的 思 路 来 解 决 问 题
17、。整 个 五 子 棋 可 以 分 为:黑 白 双 方 棋 盘 系 统,负 责 绘 制 画 面 规 则 系 统,负 责 判 定 诸 如 犯 规、输 赢 等。黑 白 双 方 负 责 接 受 用 户 的 输 入,并 告 知 棋 盘 系 统 棋 子 布 局 发 生 变 化,棋 盘 系 统 接 收 到 了 棋 子 的 变 化 的 信 息 就 负 责 在 屏 幕 上 面 显 示 出 这 种 变 化,同 时 利 用 规 则 系 统 来 对 棋 局 进 行 判 定。17、Java与 C+的 区 别【仅 供 参 考】Java是 纯 粹 的 面 向 对 象 语 言,所 有 的 对 象 都 继 承 自 java.l
18、ang.Object,C+兼 容 C,不 但 支 持 面 向 对 象 也 支 持 面 向 过 程。第 4/22页Java通 过 虚 拟 机 从 而 实 现 跨 平 台 特 性,C+依 赖 于 特 定 的 平 台。Java没 有 指 针,它 的 引 用 可 以 理 解 为 安 全 指 针,而 C+具 有 和 C 一 样 的 指 针。Java支 持 自 动 垃 圾 回 收,而 C+需 要 手 动 回 收。Java不 支 持 多 重 继 承,只 能 通 过 实 现 多 个 接 口 来 达 到 相 同 目 的,而 C+支 持 多 重 继 承。18、当 一 个 对 象 被 当 作 参 数 传 递 到 一
19、 个 方 法 后,此 方 法 可 改 变 这 个 对 象 的 属 性,并 可 返 回 变 化 后 的 结 果,那 么 这 里 到 底 是 值 传 递 还 是 引 用 传 递?【仅 供 参 考】值 传 递。Java中 只 有 值 传 递,对 于 对 象 参 数,值 的 内 容 是 对 象 的 引 用。19、Java 中 的 Math,round(-1.5)等 于 多 少?【仅 供 参 考】等 于 T,因 为 在 数 轴 上 取 值 时,中 间 值(0.5)向 右 取 整,所 以 正 0.5是 往 上 取 整,负 0.5是 直 接 舍 弃。20、final、finally、finalize 有 什
20、 么 区 别?【仅 供 参 考】final可 以 修 饰 类、变 量、方 法,修 饰 类 表 示 该 类 不 能 被 继 承、修 饰 方 法 表 示 该 方 法 不 能 被 重 写、修 饰 变 量 表 示 该 变 量 是 一 个 常 量 不 能 被 重 新 赋 值。finally一 般 作 用 在 try-catch代 码 块 中,在 处 理 异 常 的 时 候,通 常 我 们 将 一 定 要 执 行 的 代 码 方 法 finally代 码 块 中,表 示 不 管 是 否 出 现 异 常,该 代 码 块 都 会 执 行,一 般 用 来 存 放 一 些 关 闭 资 源 的 代 码。finali
21、ze是 一 个 方 法,属 于 Object类 的 一 个 方 法,而 Object类 是 所 有 类 的 父 类,Java中 允 许 使 用 finalize。方 法 在 垃 圾 收 集 器 将 对 象 从 内 存 中 清 除 出 去 之 前 做 必 要 的 清 理 工 作。二、Java进 阶 篇 1、介 绍 下 llashMap的 底 层 数 据 结 构【仅 供 参 考】我 们 现 在 用 的 都 是 JDK 1.8,底 层 是 由“数 组+链 表+红 黑 树”组 成,如 下 图,而 在 JDK 1.8之 前 是 由“数 组+链 表”组 成。2、Iterator 和 Listiterato
22、r 有 什 么 区 别?【仅 供 参 考】Iterator可 以 遍 历 Set和 List集 合,而 Listiterator只 能 遍 历 List。Iterator只 能 单 向 遍 历,而 Listiterator可 以 双 向 遍 历(向 前/后 遍 历)。第 5/22页Listiterator从 Iterator接 口 继 承,然 后 添 加 了 一 些 额 外 的 功 能,比 如 添 加 一 个 元 素、替 换 一 个 元 素、获 取 前 面 或 后 面 元 素 的 索 引 位 置。3、迭 代 器 Iterator是 什 么?【仅 供 参 考】Iterator接 口 提 供 遍
23、历 任 何 Collection的 接 口。我 们 可 以 从 一 个 Collection中 使 用 迭 代 器 方 法 来 获 取 迭 代 器 实 例。迭 代 器 取 代 了 Java集 合 框 架 中 的 Enumeration,迭 代 器 允 许 调 用 者 在 迭 代 过 程 中 移 除 元 素。4 HashMap的 插 入 流 程 是 怎 么 样 的?【仅 供 参 考】略,从 基 本 逻 辑 处 理,到 红 黑 树,到 链 表 讲 解 5、HashMap 和 Hashtable 的 区 别?【仅 供 参 考】HashMap 允 许 key 和 value 为 null,Hashta
24、ble 不 允 许。HashMap的 默 认 初 始 容 量 为 16,Hashtable为 11。HashMap的 扩 容 为 原 来 的 2 倍,Hashtable的 扩 容 为 原 来 的 2 倍 加 1。HashMap是 非 线 程 安 全 的,Hashtable是 线 程 安 全 的。HashMap的 hash值 重 新 计 算 过,Hashtable直 接 使 用 hashCodeoHashMap 去 掉 了 Hashtable 中 的 contains 方 法。HashMap 继 承 自 AbstractMap 类,Hashtable 继 承 自 Dictionary 类。6、A
25、rrayList 和 Vector 的 区 别。【仅 供 参 考】Vector和 ArrayList几 乎 一 致,唯 一 的 区 别 是 Vector在 方 法 上 使 用 了 synchronized来 保 证 线 程 安 全,因 此 在 性 能 上 ArrayList具 有 更 好 的 表 现。有 类 似 关 系 的 还 有:StringBuilder 和 StringBuffer、HashMap 和 Hashtable。7、说 一 下 llashSet的 实 现 原 理?【仅 供 参 考】llashSet是 基 于 HashMap实 现 的,llashSet底 层 使 用 HashMa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 Java 试题 100

限制150内