2021Java面试题合集-Java基础面试题91道.pdf
《2021Java面试题合集-Java基础面试题91道.pdf》由会员分享,可在线阅读,更多相关《2021Java面试题合集-Java基础面试题91道.pdf(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java概 述 1.何 为 编 程 编 程 就 是 让 计 算 机 为 解 决 某 个 问 题 而 使 用 某 种 程 序 设 计 语 言 编 写 程 序 代 码,并 最 终 得 到 结 果 的 过 程。为 了 使 计 算 机 能 够 理 解 人 的 意 图,人 类 就 必 须 要 将 需 解 决 的 问 题 的 思 路、方 法、和 手 段 通 过 计 算 机 能 够 理 解 的 形 式 告 诉 计 算 机,使 得 计 算 机 能 够 根 据 人 的 指 令 一 步 一 步 去 工 作,完 成 某 种 特 定 的 任 务。这 种 人 和 计 算 机 之 间 交 流 的 过 程 就 是 编 程.
2、2.什 么 是 Java Java是 一 门 面 向 对 象 编 程 语 言,不 仅 吸 收 了 C+语 言 的 各 种 优 点,还 摒 弃 了 C+里 难 以 理 解 的 多 继 承、指 针 等 概 念,因 此 Java语 言 具 有 功 能 强 大 和 简 单 易 用 两 个 特 征。Java语 言 作 为 静 态 面 向 对 象 编 程 语 言 的 代 表,极 好 地 实 现 了 面 向 对 象 理 论,允 许 程 序 员 以 优 雅 的 思 维 方 式 进 行 复 杂 的 编 程。3.jdk1.5之 后 的 三 大 版 本 Java SE(J2SE,Java 2 Platform St
3、andard E d itio n,标 准 版)JavaSE以 前 称 为 J2SE。它 允 许 开 发 和 部 署 在 桌 面、服 务 器、嵌 入 式 环 境 和 实 时 环 境 中 使 用 的 Java应 用 程 序。Java SE包 含 了 支 持 Java W eb服 务 开 发 的 类,并 为 Java EEava ME提 供 基 础。Java E E(J2EE,Java 2 Platform Enterprise E d itio n,企 业 版)骨 丫 2 以 前 称 为 兄。企 业 版 本 帮 助 开 发 和 部 署 可 移 植、健 壮、可 伸 缩 且 安 全 的 服 务 器
4、端 Java应 用 程 序。Java EE是 在 JavaSE的 基 础 上 构 建 的,它 提 供 W eb服 务、组 件 模 型、管 理 和 通 信 API,可 以 用 来 实 现 企 业 级 的 面 向 服 务 体 系 结 构(service-oriented architecture,S O A)和 Web2.0应 用 程 序。2018年 2月,Eclipse宣 布 正 式 将 JavaEE更 名 为 JakartaEE Java ME(J2ME,Java 2 Platform Micro E d itio n,微 型 版)Java ME以 前 称 为 J2ME。Java ME为 在
5、移 动 设 备 和 嵌 入 式 设 备(比 如 手 机、PDA、电 视 机 顶 盒 和 打 印 机)上 运 行 的 应 用 程 序 提 供 一 个 健 壮 且 灵 活 的 环 境。Java ME包 括 灵 活 的 用 户 界 面、健 壮 的 安 全 模 型、许 多 内 置 的 网 络 协 议 以 及 对 可 以 动 态 下 载 的 连 网 和 离 线 应 用 程 序 的 丰 富 支 持。基 于 JavaME规 范 的 应 用 程 序 只 需 编 写 一 次,就 可 以 用 于 许 多 设 备,而 且 可 以 利 用 每 个 设 备 的 本 机 功 能。4.Jdk和 Jre利 VM的 区 别 看
6、 Jav a官 方 的 图 片,Jdk中 包 括 了 J re,J r e中 包 括 了 JV M JDK:Jdk还 包 括 了 一 些 Jre之 外 的 东 西,就 是 这 些 东 西 帮 我 们 编 译 Java代 码 的,还 有 就 是 监 控 Jvm的 一 些 工 具 Java Development Kit是 提 供 给 Java开 发 人 员 使 用 的,其 中 包 含 了 Java的 开 发 工 具,也 包 括 了 JRE。所 以 安 装 了 JD K,就 无 需 再 单 独 安 装 JR E了。其 中 的 开 发 工 具:编 译 工 具(javac.exe),打 包 工 具(j
7、ar.exe)等 JRE:Jre大 部 分 都 是 C和 C+语 言 编 写 的,他 是 我 们 在 编 译 java时 所 需 要 的 基 础 的 类 库 JavaRuntime Environment包 括)ava虚 拟 机 和 ava程 序 所 需 的 核 心 类 库 等。核 心 类 库 主 要 是 java.lang包:包 含 了 运 行 Java程 序 必 不 可 少 的 系 统 类,如 基 本 数 据 类 型、基 本 数 学 函 数、字 符 串 处 理、线 程、异 常 处 理 类 等,系 统 缺 省 加 载 这 个 包 如 果 想 要 运 行 一 个 开 发 好 的 Java程 序
8、,计 算 机 中 只 需 要 安 装 JRE即 可。J v m:在 倒 数 第 二 层 由 他 可 以 在(最 后 一 层 的)各 种 平 台 上 运 行 Java Virtual Machine是 Java虚 拟 机,Java程 序 需 要 运 行 在 虚 拟 机 上,不 同 的 平 台 有 自 己 的 虚 拟 机,因 此 Java语 言 可 以 实 现 跨 平 台。05m at a GlanceJava LanguageTools&Tftftl APIcJava Languagejava javac javadoc apt jar javap JPDA JConsoleJavaVisual
9、VMJDKS ecurity l n t,R M I IDL D ep lo y M o n ito rin g T ro u b le s h o o t Scripting JV M T1JREDeploymentTechnologiesUserInterfaceToolkitsIntegrationLibrariesOther BaseLibrarieslang and utilBaseLibrariesDeployment Java Web Start Java Plug-inAWT Swing Java 2DJava8EAPIAccessibility Drag n Drop Inp
10、ut Methods Image 10 Print Service SoundIDL JDBC JNDI RMI RMI-IIOPBeans Inti Support Input Output JMX JNI MathNetworkingOverrideMcehanicmSecurity SerializationExtensionMoohanismXMLJAXPlang and util Collections 飞 温;JAR Logging ManagementPreferences RefAPI ObjectsReflection _ 罩 吧 丫 Versioning Zip Instr
11、umentationExpressions rJava VirtualMachineJava Hotspot Client VM Java Hotspot Server VMPlatforms Solaris Linux WinJcws O*h*r5.什 么 是 跨 平 台 性?原 理 是 什 么 所 谓 跨 平 台 性,是 指 java语 言 编 写 的 程 序,一 次 编 译 后,可 以 在 多 个 系 统 平 台 上 运 行。实 现 原 理:Java程 序 是 通 过 java虚 拟 机 在 系 统 平 台 上 运 行 的,只 要 该 系 统 可 以 安 装 相 应 的 java虚 拟
12、机,该 系 统 就 可 以 运 行 java程 序。6.Java语 言 有 哪 些 特 点 简 单 易 学 Oava语 言 的 语 法 与 C语 言 和 C+语 言 很 接 近)面 向 对 象(封 装,继 承,多 态)平 台 无 关 性 Uava虚 拟 机 实 现 平 台 无 关 性)支 持 网 络 编 程 并 且 很 方 便(Java语 言 诞 生 本 身 就 是 为 简 化 网 络 编 程 设 计 的)支 持 多 线 程(多 线 程 机 制 使 应 用 程 序 在 同 一 时 间 并 行 执 行 多 项 任)健 壮 性(Java语 言 的 强 类 型 机 制、异 常 处 理、垃 圾 的 自
13、 动 收 集 等)安 全 性 好 7.什 么 是 字 节 码?采 用 字 节 码 的 最 大 好 处 是 什 么 字 节 码:Java源 代 码 经 过 虚 拟 机 编 译 器 编 译 后 产 生 的 文 件(即 扩 展 为.class的 文 件),它 不 面 向 任 何 特 定 的 处 理 器,只 面 向 虚 拟 机。采 用 字 节 码 的 好 处:Java语 言 通 过 字 节 码 的 方 式,在 一 定 程 度 上 解 决 了 传 统 解 释 型 语 言 执 行 效 率 低 的 问 题,同 时 又 保 留 了 解 释 型 语 言 可 移 植 的 特 点。所 以 Java程 序 运 行 时
14、 比 较 高 效,而 且,由 于 字 节 码 并 不 专 对 一 种 特 定 的 机 器,因 此,Java程 序 无 须 重 新 编 译 便 可 在 多 种 不 同 的 计 算 机 上 运 行。先 看 下 java中 的 编 译 器 和 解 释 器:Java中 引 入 了 虚 拟 机 的 概 念,即 在 机 器 和 编 译 程 序 之 间 加 入 了 一 层 抽 象 的 虚 拟 机 器。这 台 虚 拟 的 机 器 在 任 何 平 台 上 都 提 供 给 编 译 程 序 一 个 的 共 同 的 接 口。编 译 程 序 只 需 要 面 向 虚 拟 机,生 成 虚 拟 机 能 够 理 解 的 代 码
15、,然 后 由 解 释 器 来 将 虚 拟 机 代 码 转 换 为 特 定 系 统 的 机 器 码 执 行。在 Java中,这 种 供 虚 拟 机 理 解 的 代 码 叫 做 字 节 码(即 扩 展 为.class的 文 件),它 不 面 向 任 何 特 定 的 处 理 器,只 面 向 虚 拟 机。每 一 种 平 台 的 解 释 器 是 不 同 的,但 是 实 现 的 虚 拟 机 是 相 同 的。Java源 程 序 经 过 编 译 器 编 译 后 变 成 字 节 码,字 节 码 由 虚 拟 机 解 释 执 行,虚 拟 机 将 每 一 条 要 执 行 的 字 节 码 送 给 解 释 器,解 释 器
16、 将 其 翻 译 成 特 定 机 器 上 的 机 器 码,然 后 在 特 定 的 机 器 上 运 行,这 就 是 上 面 提 到 的 Java的 特 点 的 编 译 与 解 释 并 存 的 解 释。Java源 代 码-编 译 器-jvm可 执 行 的 Java字 节 码(即 虚 拟 指 令)一 jvm 一 jvm中 解 释 器 机 器 可 执 行 的 二 进 制 机 器 码-一 程 序 运 行。8.什 么 是 Java程 序 的 主 类?应 用 程 序 和 小 程 序 的 主 类 有 何 不 同?一 个 程 序 中 可 以 有 多 个 类,但 只 能 有 f 类 是 主 类.在 Java应 用
17、 程 序 中,这 个 主 类 是 指 包 含 main()方 法 的 类。而 在 Java小 程 序 中,这 个 主 类 是 一 个 继 承 自 系 统 类 JApplet或 Applet的 子 类。应 用 程 序 的 主 类 不 一 定 要 求 是 public类,但 小 程 序 的 主 类 要 求 必 须 是 public类。主 类 是)ava程 序 执 行 的 入 口 9.Java应 用 程 序 与 小 程 序 之 间 有 那 些 差 别?简 单 说 应 用 程 序 是 从 主 线 程 启 动(也 就 是 main()方 法).applet小 程 序 没 有 main方 法,主 要 是
18、嵌 在 浏 览 器 页 面 上 运 行(调 用 init()线 程 或 者 run()来 启 动),嵌 入 浏 览 器 这 点 跟 flash的 小 游 戏 类 似。10.Java和 C+的 区 别我 知 道 很 多 人 没 学 过 C+,但 是 面 试 官 就 是 没 事 喜 欢 拿 咱 们 Java和 C+比 呀!没 办 法!就 算 没 学 过 C+,也 要 记 下 来!都 是 面 向 对 象 的 语 言,都 支 持 封 装、继 承 和 多 态 Java不 提 供 指 针 来 直 接 访 问 内 存,程 序 内 存 更 加 安 全 Java的 类 是 单 继 承 的,C+支 持 多 重 继
19、 承;虽 然 Java的 类 不 可 以 多 继 承,但 是 接 口 可 以 多 继 承。Java有 自 动 内 存 管 理 机 制,不 需 要 程 序 员 手 动 释 放 无 用 内 存 11.Oracle JDKfQ OpenJDK 的 对 比 1.Oracle JDK版 本 将 每 三 年 发 布 一 次,而 OpenJDK版 本 每 三 个 月 发 布 一 次;2.OpenJDK是 一 个 参 考 模 型 并 且 是 完 全 开 源 的,而 OracleJDK是。penJDK的 一 个 实 现,并 不 是 完 全 开 源 的;3.Oracle JDK比 OpenJDK更 稳 定。Ope
20、nJDK和 OracleJDK的 代 码 几 乎 相 同,但 Oracle JDK有 更 多 的 类 和 一 些 错 误 修 复。因 此,如 果 您 想 开 发 企 业/商 业 软 件,我 建 议 您 选 择 O racleJDK,因 为 它 经 过 了 彻 底 的 测 试 和 稳 定。某 些 情 况 下,有 些 人 提 到 在 使 用 OpenJDK可 能 会 遇 到 了 许 多 应 用 程 序 崩 溃 的 问 题,但 是,只 需 切 换 到 OracleJDK就 可 以 解 决 问 题;4.在 响 应 性 利 VM性 能 方 面,OracleJDK与 OpenJDK相 比 提 供 了 更
21、好 的 性 能;5.Oracle JDK不 会 为 即 将 发 布 的 版 本 提 供 长 期 支 持,用 户 每 次 都 必 须 通 过 更 新 到 最 新 版 本 获 得 支 持 来 获 取 最 新 版 本;6.OracleJDK根 据 二 进 制 代 码 许 可 协 议 获 得 许 可,而 OpenJDK根 据 GPLv2许 可 获 得 许 可。基 础 语 法 数 据 类 型 12.Java有 哪 些 数 据 类 型 定 义:Java语 言 是 强 类 型 语 言,对 于 每 一 种 数 据 都 定 义 了 明 确 的 具 体 的 数 据 类 型,在 内 存 中 分 配 了 不 同 大
22、小 的 内 存 空 间。分 类 基 本 数 据 类 型。数 值 型 o 整 数 类 型(byte,short,int,long)浮 点 类 型(float,double)字 符 型(char)布 尔 型(boolean)引 用 数 据 类 型 0 类(class)接 口(interface)数 组(口)Java基 本 数 据 类 型 图类 型 类 型 名 称 关 耀 字 占 用 内 存 取 值 范 围 作 为 成 员 变 量 的 默 认 值 字 节 型 byte 1 字 节-128(-2八 7)127(2八 7-1),0short 2 字 节 32,768(-2A15)32,767(2八 15
23、-1),0妍 整 型 int 4 字 节 2,147,483,648(-2八 31)2/47,483,647(2八 31-1)V0长 整 型 long 8 字 节-9,223,372,036,854,775,808(-2 A63)9,223,372,036,854,775,807(2 人 63-1)0L浮 点 型 单 精 度 浮 点 型 float 4 字 节-3.403E38 3.403E38 0.0F双 精 度 浮 点 型 double 8 字 节-1.798E308 1.798E308 0.0D字 符 型 字 符 型 char 2 字 节 表 示 f 钿,如(a,A,家),u0000,布
24、 尔 型 布 尔 型 boolean 1 字 节 只 有 两 个 值,tru e或 false false13.switch是 否 能 作 用 在 byte上,是 否 能 作 用 在 long上,是 否 能 作 用 在 String上 在 Java 5 以 前,switch(expr)中,expr 只 能 是 byte、short,char、int。从 Java5 开 始,Java 中 引 入 了 枚 举 类 型,expr也 可 以 是 enum类 型,从 Java 7开 始,expr还 可 以 是 字 符 串(S trin g),但 是 长 整 型(lo n g)在 目 前 所 有 的 版
25、本 中 都 是 不 可 以 的。14.用 最 有 效 率 的 方 法 计 算 2 乘 以 8 2 3(左 移 3 位 相 当 于 乘 以 2 的 3 次 方,右 移 3位 相 当 于 除 以 2 的 3 次 方)。15.Math.round(11.5)等 于 多 少?Math.round(-11.5)等 于 多 少 Math.round。1.5)的 返 回 值 是 12,Math.round(-11.5)的 返 回 值 是-11。四 舍 五 入 的 原 理 是 在 参 数 上 加 0.5然 后 进 行 下 取 整.16.float f=3.4;是 否 正 确 不 正 确。3.4是 双 精 度
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2021 Java 试题 基础 91
限制150内