一 你 对 MVC 的 理 解,MVC 有 什 么 优 缺 点? 结 合 Struts, 说 明 在 一 个 Web 应 用 如 何 去 使 用? 答 : MVC 设 计 模 式 ( 应 用 观 察 者 模 式 的 框 架 模 式 ) M: Model(Business process layer), 模 型, 操 作 数 据 的 业 务 处 理 层, 并 独 立 于 表 现 层 (Independent of presentation) V: View(Presentation layer), 视 图, 通 过 客 户 端 数 据 类 型 显 示 数 据, 并 回 显 模 型 层 的 执 行 结 果 C: Controller(Control layer), 控 制 器, 也 就 是 视 图 层 和 模 型 层 桥 梁, 控 制 数 据 的 流 向, 接 受 视 图 层 发 出 的 事 件, 并 重 绘 视 图 MVC 框 架 的 一 种 实 现 模 型 模 型 二 (Servlet-centric): JSP+Servlet+JavaBean, 以 控 制 为 核 心,JSP 只 负 责 显 示 和 收 集 数 据,Sevlet, 连 接 视 图 和 模 型, 将 视 图 层 数 据, 发 送 给 模 型 层,JavaBean, 分 为 业 务 类 和 数 据 实 体, 业 务 类 处 理 业 务 数 据, 数 据 实 体, 承 载 数 据, 基 本 上 大 多 数 的 项 目 都 是 使 用 这 种 MVC 的 实 现 模 式 StrutsMVC 框 架 (Web application frameworks) Struts 是 使 用 MVC 的 实 现 模 式 二 来 实 现 的, 也 就 是 以 控 制 器 为 核 心 Struts 提 供 了 一 些 组 件 使 用 MVC 开 发 应 用 程 序 : Model:Struts 没 有 提 供 model 类 这 个 商 业 逻 辑 必 须 由 Web 应 用 程 序 的 开 发 者 以 JavaBean 或 EJB 的 形 式 提 供 第 1 页 共 33 页
View:Struts 提 供 了 action form 创 建 form bean, 用 于 在 controller 和 view 间 传 输 数 据 此 外,Struts 提 供 了 自 定 义 JSP 标 签 库, 辅 助 开 发 者 用 JSP 创 建 交 互 式 的 以 表 单 为 基 础 的 应 用 程 序, 应 用 程 序 资 源 文 件 保 留 了 一 些 文 本 常 量 和 错 误 消 息, 可 转 变 为 其 它 语 言, 可 用 于 JSP 中 Controller:Struts 提 供 了 一 个 核 心 的 控 制 器 ActionServlet, 通 过 这 个 核 心 的 控 制 器 来 调 用 其 他 用 户 注 册 了 的 自 定 义 的 控 制 器 Action, 自 定 义 Action 需 要 符 合 Struts 的 自 定 义 Action 规 范, 还 需 要 在 struts-config.xml 的 特 定 配 置 文 件 中 进 行 配 置, 接 收 JSP 输 入 字 段 形 成 Action form, 然 后 调 用 一 个 Action 控 制 器 Action 控 制 器 中 提 供 了 model 的 逻 辑 接 口 二 什 么 是 WebService? 答 : WebService 是 一 个 SOA( 面 向 服 务 的 编 程 ) 的 架 构, 它 是 不 依 赖 于 语 言, 不 依 赖 于 平 台, 可 以 实 现 不 同 的 语 言 间 的 相 互 调 用, 通 过 Internet 进 行 基 于 Http 协 议 的 网 络 应 用 间 的 交 互 WebService 实 现 不 同 语 言 间 的 调 用, 是 依 托 于 一 个 标 准,webservice 是 需 要 遵 守 WSDL(web 服 务 定 义 语 言 )/SOAP( 简 单 请 求 协 议 ) 规 范 的 WebService=WSDL+SOAP+UDDI(webservice 的 注 册 ) Soap 是 由 Soap 的 part 和 0 个 或 多 个 附 件 组 成, 一 般 只 有 part, 在 part 中 有 Envelope 和 Body Web Service 是 通 过 提 供 标 准 的 协 议 和 接 口, 可 以 让 不 同 的 程 序 集 成 的 一 种 SOA 架 构 Web Service 的 优 点 第 2 页 共 33 页
(1) 可 以 让 异 构 的 程 序 相 互 访 问 ( 跨 平 台 ) (2) 松 耦 合 (3) 基 于 标 准 协 议 ( 通 用 语 言, 允 许 其 他 程 序 访 问 ) Web Service 的 基 本 原 理 (1) Service Provider 采 用 WSDL 描 述 服 务 (2) Service Provider 采 用 UDDI 将 服 务 的 描 述 文 件 发 布 到 UDDI 服 务 器 (Register server) (3) Service Requestor 在 UDDI 服 务 器 上 查 询 并 获 取 WSDL 文 件 (4) Service requestor 将 请 求 绑 定 到 SOAP, 并 访 问 相 应 的 服 务 三 什 么 是 中 间 件? 中 间 件 就 是 程 序 中 可 织 入 的, 可 重 用 的, 与 业 务 逻 辑 无 关 的 各 种 组 件 中 间 件 (middleware) 是 基 础 软 件 的 一 大 类, 属 于 可 复 用 软 件 的 范 畴 顾 名 思 义, 中 间 件 处 于 操 作 系 统 软 件 与 用 户 的 应 用 软 件 的 中 间 中 间 件 在 操 作 系 统 网 络 和 数 据 库 之 上, 应 用 软 件 的 下 层, 总 的 作 用 是 为 处 于 自 己 上 层 的 应 用 软 件 提 供 运 行 与 开 发 的 环 境, 帮 助 用 户 灵 活 高 效 地 开 发 和 集 成 复 杂 的 应 用 软 件 在 众 多 关 于 中 间 件 的 定 义 中, 比 较 普 遍 被 接 受 的 是 IDC 表 述 的 : 中 间 件 是 一 种 独 立 的 系 统 软 件 或 服 务 程 序, 分 布 式 应 用 软 件 借 助 这 种 软 件 在 不 同 的 技 术 之 间 共 享 资 源, 中 间 件 位 于 客 户 机 服 务 器 的 操 作 系 统 之 上, 管 理 计 算 资 源 和 网 络 通 信 分 类 : 数 据 访 问 中 间 件, 远 程 调 用 中 间 件, 消 息 中 间 件, 交 易 中 间 件, 对 象 中 间 件 举 例 : 1,RMI(Remote Method Invocations, 远 程 调 用 ) 第 3 页 共 33 页
2,Load Balancing( 负 载 均 衡, 将 访 问 负 荷 分 散 到 各 个 服 务 器 中 ) 3,Transparent Fail-over( 透 明 的 故 障 切 换 ) 4,Clustering( 集 群, 用 多 个 小 的 服 务 器 代 替 大 型 机 ) 5,Back-end-Integration( 后 端 集 成, 用 现 有 的 新 开 发 的 系 统 如 何 去 集 成 遗 留 的 系 统 ) 6,Transaction 事 务 ( 全 局 / 局 部 ) 全 局 事 务 ( 分 布 式 事 务 ) 局 部 事 务 ( 在 同 一 数 据 库 联 接 内 的 事 务 ) 7,Dynamic Redeployment( 动 态 重 新 部 署, 在 不 停 止 原 系 统 的 情 况 下, 部 署 新 的 系 统 ) 8,System Management( 系 统 管 理 ) 9,Threading( 多 线 程 处 理 ) 10,Message-oriented Middleware 面 向 消 息 的 中 间 件 ( 异 步 的 调 用 编 程 ) 11,Component Life Cycle( 组 件 的 生 命 周 期 管 理 ) 12,Resource pooling( 资 源 池 ) 13,Security( 安 全 ) 14,Caching( 缓 存 ) 四 什 么 是 典 型 的 软 件 三 层 结 构? 软 件 设 计 为 什 么 要 分 层? 软 件 分 层 有 什 么 好 处? 答 :(1) Presentation layer( 表 示 层 ) (1) 表 示 逻 辑 ( 生 成 界 面 代 码 ) (2) 接 收 请 求 (3) 处 理 业 务 层 抛 出 的 异 常 (4) 负 责 规 则 验 证 ( 数 据 格 式, 数 据 非 空 等 ) (5) 流 程 控 制 第 4 页 共 33 页
(2) Service layer( 服 务 层 / 业 务 层 ) (1) 封 装 业 务 逻 辑 处 理, 并 且 对 外 暴 露 接 口 (2) 负 责 事 务, 安 全 等 服 务 (3) Persistence layer( 持 久 层 ) (1) 封 装 数 据 访 问 的 逻 辑, 暴 露 接 口 (2) 提 供 方 便 的 数 据 访 问 的 方 案 ( 查 询 语 言,API, 映 射 机 制 等 ) Domain layer( 域 层 ) (1) 业 务 对 象 以 及 业 务 关 系 的 表 示 (2) 处 理 简 单 的 业 务 逻 辑 (3) 域 层 的 对 象 可 以 穿 越 表 示 层, 业 务 层, 持 久 层 软 件 分 层 结 构 使 得 代 码 维 护 非 常 方 便, 设 计 明 确, 各 层 独 立, 专 注 自 己 擅 长 的 领 域 五 什 么 是 OOP?OOP 相 对 于 面 向 过 程 编 程 有 哪 些 优 点? OOP,Object-Oriented Programming, 面 向 对 象 编 程 不 同 于 面 向 过 程 编 程 : (1)OOP 关 注 对 象 和 角 色, 也 就 是 事 物 的 本 质 1)OOP 把 客 观 世 界 中 的 对 象 抽 象 成 对 应 的 类 ; 2) 通 过 类 构 造 实 例 ; 3) 通 过 依 赖 继 承 实 现 等 形 式 建 立 对 象 间 的 通 信 关 系 (2)OOP 易 于 扩 展, 增 加 或 改 变 业 务 的 功 能, 无 需 大 幅 改 动 改 变 源 代 码 (3)OOP 易 于 建 模,OOP 就 是 软 件 架 构 师 在 计 算 机 高 级 语 言 中 对 客 观 世 界 的 抽 象 和 再 现, 人 们 可 以 很 好 地 理 解 和 建 立 起 计 算 机 中 的 抽 象 模 型 六 谈 谈 Overload 和 Override 的 区 别 第 5 页 共 33 页
答 : 方 法 的 重 写 Overriding 和 重 载 Overloading 是 Java 多 态 性 的 不 同 表 现 重 写 Overriding 是 父 类 与 子 类 之 间 多 态 性 的 一 种 表 现, 重 载 Overloading 是 一 个 类 中 多 态 性 的 一 种 表 现 如 果 在 子 类 中 定 义 某 方 法 与 其 父 类 有 相 同 的 名 称 和 参 数, 我 们 说 该 方 法 被 重 写 (Overriding) 子 类 的 对 象 使 用 这 个 方 法 时, 将 调 用 子 类 中 的 定 义, 对 它 而 言, 父 类 中 的 定 义 如 同 被 屏 蔽 了 如 果 在 一 个 类 中 定 义 了 多 个 同 名 的 方 法, 它 们 或 有 不 同 的 参 数 个 数 或 有 不 同 的 参 数 类 型, 则 称 为 方 法 的 重 载 (Overloading) Overloaded 的 方 法 是 可 以 改 变 返 回 值 的 类 型 七 谈 谈 HashMap 和 Hashtable 的 区 别 答 : HashMap 是 轻 量 级 的 ( 线 程 不 安 全 的, 效 率 高 的 ) 集 合, Hashtable 是 重 量 级 的 ( 线 程 安 全 的, 效 率 低 的 ) 集 合 都 属 于 Map 接 口 的 类, 实 现 了 将 惟 一 键 映 射 到 特 定 的 值 上 HashMap 类 没 有 分 类 或 者 排 序 它 允 许 一 个 null 键 和 多 个 null 值 Hashtable 类 似 于 HashMap, 但 是 不 允 许 null 键 和 null 值 它 也 比 HashMap 慢, 因 为 它 是 同 步 的 八 请 问 abstract class 和 interface 有 什 么 区 别? 答 : 1) 接 口 没 有 任 何 的 实 现, 而 抽 象 类 它 可 以 有 部 分 的 实 现 也 可 以 没 有 ; 2) 如 果 需 要 复 用 或 者 共 享 部 分 代 码, 应 该 用 抽 象 类 而 不 是 接 口 ; 3) 继 承 无 法 解 决 类 型 的 转 换 问 题, 接 口 就 是 为 了 解 决 这 一 问 题 而 产 生 的 (Java 的 单 继 承 是 接 口 产 生 的 根 本 原 因 ) 接 口 是 一 种 抽 象 的 第 三 方 规 范, 跟 对 象 没 什 么 直 接 关 系 第 6 页 共 33 页
九 请 问 软 件 开 发 中 的 设 计 模 式 你 会 使 用 哪 些? 答 : 我 熟 悉 的 设 计 模 式 有 单 例 模 式,DAO 模 式, 模 板 方 法, 工 厂 模 式, 委 托 代 理 模 式, MVC 模 式 等 Singleton 模 式 主 要 作 用 是 保 证 在 Java 应 用 程 序 中, 一 个 类 Class 只 有 一 个 实 例 存 在 Singleton 模 式 一 般 形 式 : 定 义 一 个 类, 它 的 构 造 函 数 为 private 的, 它 有 一 个 static 的 private 的 该 类 变 量, 在 类 初 始 化 时 实 例 话, 通 过 一 个 public 的 getinstance 方 法 获 取 对 它 的 引 用, 继 而 调 用 其 中 的 方 法 十 类 的 核 心 特 性 有 哪 些? 类 具 有 封 装 性 继 承 性 和 多 态 性 封 装 性 : 类 的 封 装 性 为 类 的 成 员 提 供 公 有 缺 省 保 护 和 私 有 等 多 级 访 问 权 限, 目 的 是 隐 藏 类 中 的 私 有 变 量 和 类 中 方 法 的 实 现 细 节 继 承 性 : 类 的 继 承 性 提 供 从 已 存 在 的 类 创 建 新 类 的 机 制, 继 承 (inheritance) 使 一 个 新 类 自 动 拥 有 被 继 承 类 ( 父 类 ) 的 全 部 成 员 多 态 性 : 类 的 多 态 性 提 供 类 中 方 法 执 行 的 多 样 性, 多 态 性 有 两 种 表 现 形 式 : 重 载 和 覆 盖 十 一 请 问 类 与 对 象 有 什 么 区 别? 类 类 就 是 某 一 种 事 物 的 一 般 性 的 集 合 体, 是 相 同 或 相 似 的 各 个 事 物 共 同 特 性 的 一 种 抽 第 7 页 共 33 页
象 对 象 在 面 向 对 象 概 念 中, 对 象 (Object) 是 类 的 实 例 (instance) 对 象 与 类 的 关 系 就 像 变 量 与 数 据 类 型 的 关 系 一 样 十 二 写 出 生 产 者 消 费 者 模 型 的 实 现 十 三 用 软 件 工 程 和 Java 来 叙 述 购 物 车 (shopping cart) 系 统 实 现 十 四 文 件 系 统 的 几 个 类 :FileInputStream FileOutputStream FileReader FileWriter 的 区 别 十 五 请 写 出 Java API 中 最 常 用 的 五 个 包, 并 且 各 举 两 个 类 加 以 说 明 十 六 请 问 你 在 电 信 运 营 支 撑 系 统 中 遇 到 了 哪 些 问 题? 你 是 怎 么 解 决 的? 做 这 个 项 目 你 最 大 的 收 获 是 什 么? 十 七 请 说 出 几 个 常 用 的 异 常 类 答 :NullpointException( 空 指 针 异 常 ) ClassNotFoundException( 类 找 不 到 异 常 ) ClassCastException( 类 型 转 换 异 常 ) IllegalArgumentException( 非 法 参 数 异 常 ) ArithmeticException( 算 术 异 常 ) NumberFormatException( 数 据 格 式 异 常 ) IndexOutOfBoundsException( 数 组 下 标 越 界 异 常 ) IllegalStateException( 非 法 语 句 异 常 ) 十 八 什 么 是 进 程 和 线 程? 两 者 的 区 别 是 什 么? 第 8 页 共 33 页
十 九 请 简 要 描 述 一 下 你 做 的 ShoppingCart 项 目 二 十 请 问 网 络 7 层 协 议,tcp/ip4 层 协 议 是 什 么? 二 十 一 Java 面 向 对 象 的 四 大 特 点 二 十 二 public,private,protected,default 访 问 权 限 ( 可 见 性 ) 答 : public: 全 局 可 见 protected: 继 承 体 系 结 构 之 间 可 见 default( 或 不 写 ): 同 包 可 见 private: 本 类 可 见 二 十 三 名 词 解 释 CRM [Customer Relationship Management, 客 户 关 系 管 理 ] ERP [Enterprise Resource Planning, 企 业 资 源 规 划 ] OSS [Operation Support System, 运 营 支 撑 系 统 ] BSS [Business Support System, 数 据 定 义 语 言 ] BOSS [Business Operation Support System, 数 据 定 义 语 言 ] OA [Office Automatization, 办 公 自 动 化 ] HTTP OOP SOA GUI DDL 第 9 页 共 33 页
[Data Definition Language, 数 据 定 义 语 言 ] DML [Data Manipulation Language, 数 据 操 作 语 言 ] WYSIWYG 所 见 即 所 得 [What You See is What You Get] CMP CMT B2B C2C B2C IDE DOM Client/Server CMM ORM MIS MVC MVC 是 Model-View-Controller 的 简 写 "Model" 代 表 的 是 应 用 的 业 务 逻 辑 ( 通 过 JavaBean, EJB 组 件 实 现 ), "View" 是 应 用 的 表 示 面 ( 由 JSP 页 面 产 生 ), "Controller" 是 提 供 应 用 的 处 理 过 程 控 制 ( 一 般 是 一 个 Servlet), 通 过 这 种 设 计 模 型 把 应 用 逻 辑, 处 理 过 程 和 显 示 逻 辑 分 成 不 同 的 组 件 实 现 这 些 组 件 可 以 进 行 交 互 和 重 用 OLE CORBA CORBA 标 准 是 公 共 对 象 请 求 代 理 结 构 (Common Object Request Broker Architecture), 由 对 象 管 理 组 织 (Object Management Group, 缩 写 为 OMG) 标 准 化 它 的 组 成 是 接 口 定 义 语 言 (IDL), 语 言 绑 定 (binding: 也 译 为 联 编 ) 和 允 许 应 用 程 序 间 互 操 作 的 协 议 其 目 的 为 : 用 不 同 的 程 序 设 计 语 言 书 写 在 不 同 的 进 程 中 运 行 为 不 同 的 操 作 系 统 开 发 第 10 页 共 33 页
UML UML, 标 准 建 模 语 言, 包 含 用 例 图, 静 态 图 ( 包 括 类 图 对 象 图 和 包 图 ), 行 为 图, 交 互 图 ( 顺 序 图, 合 作 图 ), 实 现 图 等 XML CMMI JRE J2EE J2EE 是 Sun 公 司 提 出 的 多 层 (multi-diered), 分 布 式 (distributed), 基 于 组 件 (component-base) 的 企 业 级 应 用 模 型 (enterpriese application model). 在 这 样 的 一 个 应 用 系 统 中, 可 按 照 功 能 划 分 为 不 同 的 组 件, 这 些 组 件 又 可 在 不 同 计 算 机 上, 并 且 处 于 相 应 的 层 次 (tier) 中 所 属 层 次 包 括 客 户 层 (clietn tier) 组 件,web 层 和 组 件,Business 层 和 组 件, 企 业 信 息 系 统 (EIS) 层 JDK AOP OO Container W3C JMS Domain POJO JVM JNDI JTA SOAP [Simple Object Access Protocol, 简 单 对 象 访 问 协 议 ] WSDL JDO JDO 是 Java 对 象 持 久 化 的 新 的 规 范, 为 Java Data Object 的 简 称, 也 是 一 个 用 于 存 取 某 种 数 据 仓 库 中 的 对 象 的 标 准 化 API JDO 提 供 了 透 明 的 对 象 存 储, 因 此 对 开 发 人 员 来 说, 存 储 数 据 对 象 完 全 不 需 要 额 外 的 代 码 ( 如 JDBC API 的 使 用 ) 这 些 繁 琐 的 例 行 工 作 已 经 转 移 到 JDO 产 品 提 供 商 身 上, 使 开 发 人 员 解 脱 出 来, 从 而 集 中 时 间 和 精 力 在 业 务 逻 辑 上 第 11 页 共 33 页
另 外,JDO 很 灵 活, 因 为 它 可 以 在 任 何 数 据 底 层 上 运 行 JDBC 只 是 面 向 关 系 数 据 库 (RDBMS)JDO 更 通 用, 提 供 到 任 何 数 据 底 层 的 存 储 功 能, 比 如 关 系 数 据 库 文 件 XML 以 及 对 象 数 据 库 (ODBMS) 等 等, 使 得 应 用 可 移 植 性 更 强 TDD DAO IoC [Inversion of Control, 控 制 反 转 ] RMI DNS [Internet Domain Name System, 因 特 网 域 名 系 统 ] URL URI 二 十 四 数 据 库 连 接 池 的 工 作 机 制 二 十 五 互 联 网 提 供 哪 些 服 务? 二 十 六 请 写 出 JSP 的 几 个 隐 含 内 置 对 象 答 :JSP 中 隐 含 内 置 对 象 名 称 类 型 注 释 和 范 围 request javax.servlet.http.httpservletrequest request response javax.servlet.http.httpservletresponse response page javax.lang.object page Exception java.lang.throwable page pagecontext javax.servlet.jsp.pagecontext page session javax.servlet.http.httpsession session application javax.servlet.servletcontext ServletContext out javax.servlet.jsp.jspwriter OutputStream config javax.servlet.servletconfig ServletConfig JSP 共 有 以 下 9 种 基 本 内 置 组 件 ( 可 与 ASP 的 6 种 内 部 组 件 相 对 应 ): request 用 户 端 请 求, 此 请 求 会 包 含 来 自 GET/POST 请 求 的 参 数 response 网 页 传 回 用 户 端 的 回 应 第 12 页 共 33 页
page JSP 网 页 本 身 exception 针 对 错 误 网 页, 未 捕 捉 的 例 外 pagecontext 网 页 的 属 性 是 在 这 里 管 理 session 与 请 求 有 关 的 会 话 期 application servlet 正 在 执 行 的 内 容 out 用 来 传 送 回 应 的 输 出 config Servlet 的 构 架 部 件 二 十 七 请 你 谈 谈 SSH 整 合 答 :SSH: Struts( 表 示 层 )+Spring( 业 务 层 )+Hibernate( 持 久 层 ) Struts: Struts 是 一 个 表 示 层 框 架, 主 要 作 用 是 界 面 展 示, 接 收 请 求, 分 发 请 求 在 MVC 框 架 中, Struts 属 于 VC 层 次, 负 责 界 面 表 现, 负 责 MVC 关 系 的 分 发 ( View : 沿 用 JSP, HTTP, Form, Tag, Resourse ; Controller : ActionServlet,struts-config.xml,Action) Hibernate: Hibernate 是 一 个 持 久 层 框 架, 它 只 负 责 与 关 系 数 据 库 的 操 作 Spring: Spring 是 一 个 业 务 层 框 架, 是 一 个 整 合 的 框 架, 能 够 很 好 地 黏 合 表 示 层 与 持 久 层 二 十 八 应 用 服 务 器 与 Web Server 的 区 别 二 十 九 Java Servlet API 中 forward() 与 redirect() 的 区 别 答 : 第 13 页 共 33 页
前 者 仅 是 容 器 中 控 制 权 的 转 向, 在 客 户 端 浏 览 器 地 址 栏 中 不 会 显 示 出 转 向 后 的 地 址 ; 后 者 则 是 完 全 的 跳 转, 浏 览 器 将 会 得 到 跳 转 的 地 址, 并 重 新 发 送 请 求 链 接 这 样, 从 浏 览 器 的 地 址 栏 中 可 以 看 到 跳 转 后 的 链 接 地 址 所 以, 前 者 更 加 高 效, 在 前 者 可 以 满 足 需 要 时, 尽 量 使 用 forward() 方 法, 并 且, 这 样 也 有 助 于 隐 藏 实 际 的 链 接 在 有 些 情 况 下, 比 如, 需 要 跳 转 到 一 个 其 它 服 务 器 上 的 资 源, 则 必 须 使 用 sendredirect() 方 法 三 十 写 一 个 简 单 的 C/S 结 构 程 序,Java 的 通 信 编 程, 编 程 题 ( 或 问 答 ), 用 JAVA SOCKET 编 程, 读 服 务 器 几 个 字 符, 再 写 入 本 地 显 示? 答 :Server 端 程 序 : package test; import java.net.*; import java.io.*; public class Server private ServerSocket ss; private Socket socket; private BufferedReader in; private PrintWriter out; public Server() try 第 14 页 共 33 页
ss=new ServerSocket(10000); while(true) socket = ss.accept(); String RemoteIP = socket.getinetaddress().gethostaddress(); String RemotePort = ":"+socket.getlocalport(); System.out.println("A client come in!ip:"+remoteip+remoteport); in = new BufferedReader(new InputStreamReader(socket.getInputStream())); String line = in.readline(); System.out.println("Cleint send is :" + line); out = new PrintWriter(socket.getOutputStream(),true); out.println("your Message Received!"); out.close(); in.close(); socket.close(); } }catch (IOException e) out.println("wrong"); } 第 15 页 共 33 页
} public static void main(string[] args) new Server(); } }; Client 端 程 序 : package test; import java.io.*; import java.net.*; public class Client Socket socket; BufferedReader in; PrintWriter out; public Client() try System.out.println("Try to Connect to 127.0.0.1:10000"); socket = new Socket("127.0.0.1",10000); 第 16 页 共 33 页
System.out.println("The Server Connected!"); System.out.println("Please enter some Character:"); BufferedReader line = new BufferedReader(new InputStreamReader(System.in)); out = new PrintWriter(socket.getOutputStream(),true); out.println(line.readline()); in = new BufferedReader(new InputStreamReader(socket.getInputStream())); System.out.println(in.readLine()); out.close(); in.close(); socket.close(); }catch(ioexception e) out.println("wrong"); } } public static void main(string[] args) new Client(); } }; 第 17 页 共 33 页
九 请 问 软 件 开 发 中 的 设 计 模 式 你 会 使 用 哪 些? 答 : 我 熟 悉 的 设 计 模 式 有 单 例 模 式,DAO 模 式, 模 板 方 法, 工 厂 模 式, 委 托 代 理 模 式,MVC 模 式 等 Singleton 模 式 主 要 作 用 是 保 证 在 Java 应 用 程 序 中, 一 个 类 Class 只 有 一 个 实 例 存 在 Singleton 模 式 一 般 形 式 : 定 义 一 个 类, 它 的 构 造 函 数 为 private 的, 它 有 一 个 static 的 private 的 该 类 变 量, 在 类 初 始 化 时 实 例 话, 通 过 一 个 public 的 getinstance 方 法 获 取 对 它 的 引 用, 继 而 调 用 其 中 的 方 法 十 类 的 核 心 特 性 有 哪 些? 类 具 有 封 装 性 继 承 性 和 多 态 性 封 装 性 : 类 的 封 装 性 为 类 的 成 员 提 供 公 有 缺 省 保 护 和 私 有 等 多 级 访 问 权 限, 目 的 是 隐 藏 类 中 的 私 有 变 量 和 类 中 方 法 的 实 现 细 节 继 承 性 : 类 的 继 承 性 提 供 从 已 存 在 的 类 创 建 新 类 的 机 制, 继 承 (inheritance) 使 一 个 新 类 自 动 拥 有 被 继 承 类 ( 父 类 ) 的 全 部 成 员 第 18 页 共 33 页
多 态 性 : 类 的 多 态 性 提 供 类 中 方 法 执 行 的 多 样 性, 多 态 性 有 两 种 表 现 形 式 : 重 载 和 覆 盖 十 一 请 问 类 与 对 象 有 什 么 区 别? 类 类 就 是 某 一 种 事 物 的 一 般 性 的 集 合 体, 是 相 同 或 相 似 的 各 个 事 物 共 同 特 性 的 一 种 抽 象 对 象 在 面 向 对 象 概 念 中, 对 象 (Object) 是 类 的 实 例 (instance) 对 象 与 类 的 关 系 就 像 变 量 与 数 据 类 型 的 关 系 一 样 十 二 写 出 生 产 者 消 费 者 模 型 的 实 现 十 三 用 软 件 工 程 和 Java 来 叙 述 购 物 车 (shopping cart) 系 统 实 现 十 四 文 件 系 统 的 几 个 类 :FileInputStream FileOutputStream FileReader Fi lewriter 的 区 别 十 五 请 写 出 Java API 中 最 常 用 的 五 个 包, 并 且 各 举 两 个 类 加 以 说 明 第 19 页 共 33 页
十 六 请 问 你 在 电 信 运 营 支 撑 系 统 中 遇 到 了 哪 些 问 题? 你 是 怎 么 解 决 的? 做 这 个 项 目 你 最 大 的 收 获 是 什 么? 十 七 请 说 出 几 个 常 用 的 异 常 类 答 :NullpointException( 空 指 针 异 常 ) ClassNotFoundException( 类 找 不 到 异 常 ) ClassCastException( 类 型 转 换 异 常 ) IllegalArgumentException( 非 法 参 数 异 常 ) ArithmeticException( 算 术 异 常 ) NumberFormatException( 数 据 格 式 异 常 ) IndexOutOfBoundsException( 数 组 下 标 越 界 异 常 ) IllegalStateException( 非 法 语 句 异 常 ) 十 八 什 么 是 进 程 和 线 程? 两 者 的 区 别 是 什 么? 十 九 请 简 要 描 述 一 下 你 做 的 ShoppingCart 项 目 二 十 请 问 网 络 7 层 协 议,tcp/ip4 层 协 议 是 什 么? 二 十 一 Java 面 向 对 象 的 四 大 特 点 二 十 二 public,private,protected,default 访 问 权 限 ( 可 见 性 ) 答 : public: 全 局 可 见 第 20 页 共 33 页
protected: 继 承 体 系 结 构 之 间 可 见 default( 或 不 写 ): 同 包 可 见 private: 本 类 可 见 二 十 三 名 词 解 释 CRM [Customer Relationship Management, 客 户 关 系 管 理 ] ERP [Enterprise Resource Planning, 企 业 资 源 规 划 ] OSS [Operation Support System, 运 营 支 撑 系 统 ] BSS [Business Support System, 数 据 定 义 语 言 ] BOSS [Business Operation Support System, 数 据 定 义 语 言 ] OA [Office Automatization, 办 公 自 动 化 ] HTTP OOP SOA GUI 第 21 页 共 33 页
DDL [Data Definition Language, 数 据 定 义 语 言 ] DML [Data Manipulation Language, 数 据 操 作 语 言 ] WYSIWYG 所 见 即 所 得 [What You See is What You Get] CMP CMT B2B C2C B2C IDE DOM Client/Server CMM ORM MIS MVC MVC 是 Model-View-Controller 的 简 写 "Model" 代 表 的 是 应 用 的 业 务 逻 辑 ( 通 过 JavaBean,EJB 组 件 实 现 ), "View" 是 应 用 的 表 示 面 ( 由 JSP 页 面 产 生 ),"Controller" 是 提 供 应 用 的 处 理 过 程 控 制 第 22 页 共 33 页
( 一 般 是 一 个 Servlet), 通 过 这 种 设 计 模 型 把 应 用 逻 辑, 处 理 过 程 和 显 示 逻 辑 分 成 不 同 的 组 件 实 现 这 些 组 件 可 以 进 行 交 互 和 重 用 OLE CORBA CORBA 标 准 是 公 共 对 象 请 求 代 理 结 构 (Common Object Request Broker Architecture), 由 对 象 管 理 组 织 (Object Management Group, 缩 写 为 OMG) 标 准 化 它 的 组 成 是 接 口 定 义 语 言 (IDL), 语 言 绑 定 (binding: 也 译 为 联 编 ) 和 允 许 应 用 程 序 间 互 操 作 的 协 议 其 目 的 为 : 用 不 同 的 程 序 设 计 语 言 书 写 在 不 同 的 进 程 中 运 行 为 不 同 的 操 作 系 统 开 发 UML UML, 标 准 建 模 语 言, 包 含 用 例 图, 静 态 图 ( 包 括 类 图 对 象 图 和 包 图 ), 行 为 图, 交 互 图 ( 顺 序 图, 合 作 图 ), 实 现 图 等 XML CMMI JRE J2EE 第 23 页 共 33 页
J2EE 是 Sun 公 司 提 出 的 多 层 (multi-diered), 分 布 式 (distributed), 基 于 组 件 (component-base) 的 企 业 级 应 用 模 型 (enterpriese application model). 在 这 样 的 一 个 应 用 系 统 中, 可 按 照 功 能 划 分 为 不 同 的 组 件, 这 些 组 件 又 可 在 不 同 计 算 机 上, 并 且 处 于 相 应 的 层 次 (tier) 中 所 属 层 次 包 括 客 户 层 (clietn tier) 组 件,web 层 和 组 件,Business 层 和 组 件, 企 业 信 息 系 统 (EIS) 层 JDK AOP OO Container W3C JMS Domain POJO JVM JNDI JTA SOAP [Simple Object Access Protocol, 简 单 对 象 访 问 协 议 ] 第 24 页 共 33 页
WSDL JDO JDO 是 Java 对 象 持 久 化 的 新 的 规 范, 为 Java Data Object 的 简 称, 也 是 一 个 用 于 存 取 某 种 数 据 仓 库 中 的 对 象 的 标 准 化 API JDO 提 供 了 透 明 的 对 象 存 储, 因 此 对 开 发 人 员 来 说, 存 储 数 据 对 象 完 全 不 需 要 额 外 的 代 码 ( 如 JDBC API 的 使 用 ) 这 些 繁 琐 的 例 行 工 作 已 经 转 移 到 JDO 产 品 提 供 商 身 上, 使 开 发 人 员 解 脱 出 来, 从 而 集 中 时 间 和 精 力 在 业 务 逻 辑 上 另 外,JDO 很 灵 活, 因 为 它 可 以 在 任 何 数 据 底 层 上 运 行 JDBC 只 是 面 向 关 系 数 据 库 (RDBMS)JDO 更 通 用, 提 供 到 任 何 数 据 底 层 的 存 储 功 能, 比 如 关 系 数 据 库 文 件 XML 以 及 对 象 数 据 库 (ODBMS) 等 等, 使 得 应 用 可 移 植 性 更 强 TDD DAO IoC [Inversion of Control, 控 制 反 转 ] RMI DNS [Internet Domain Name System, 因 特 网 域 名 系 统 ] URL 第 25 页 共 33 页
URI 二 十 四 数 据 库 连 接 池 的 工 作 机 制 二 十 五 互 联 网 提 供 哪 些 服 务? 二 十 六 请 写 出 JSP 的 几 个 隐 含 内 置 对 象 答 :JSP 中 隐 含 内 置 对 象 名 称 类 型 注 释 和 范 围 request javax.servlet.http.httpservletrequest request response javax.servlet.http.httpservletresponse response page javax.lang.object page Exception java.lang.throwable page pagecontext javax.servlet.jsp.pagecontext page session javax.servlet.http.httpsession session 第 26 页 共 33 页
application javax.servlet.servletcontext ServletContext out javax.servlet.jsp.jspwriter OutputStream config javax.servlet.servletconfig ServletConfig JSP 共 有 以 下 9 种 基 本 内 置 组 件 ( 可 与 ASP 的 6 种 内 部 组 件 相 对 应 ): request 用 户 端 请 求, 此 请 求 会 包 含 来 自 GET/POST 请 求 的 参 数 response 网 页 传 回 用 户 端 的 回 应 page JSP 网 页 本 身 exception 针 对 错 误 网 页, 未 捕 捉 的 例 外 pagecontext 网 页 的 属 性 是 在 这 里 管 理 session 与 请 求 有 关 的 会 话 期 application servlet 正 在 执 行 的 内 容 out 用 来 传 送 回 应 的 输 出 config Servlet 的 构 架 部 件 二 十 七 请 你 谈 谈 SSH 整 合 答 :SSH: Struts( 表 示 层 )+Spring( 业 务 层 ) +Hibernate( 持 久 层 ) 第 27 页 共 33 页
Struts: Struts 是 一 个 表 示 层 框 架, 主 要 作 用 是 界 面 展 示, 接 收 请 求, 分 发 请 求 在 MVC 框 架 中,Struts 属 于 VC 层 次, 负 责 界 面 表 现, 负 责 MVC 关 系 的 分 发 (View: 沿 用 JSP,HTTP,Form,Tag,Resourse ;Controller: ActionServlet,struts-config.xml,Action) Hibernate: Hibernate 是 一 个 持 久 层 框 架, 它 只 负 责 与 关 系 数 据 库 的 操 作 Spring: Spring 是 一 个 业 务 层 框 架, 是 一 个 整 合 的 框 架, 能 够 很 好 地 黏 合 表 示 层 与 持 久 层 二 十 八 应 用 服 务 器 与 Web Server 的 区 别 二 十 九 Java Servlet API 中 forward() 与 redirect() 的 区 别 答 : 前 者 仅 是 容 器 中 控 制 权 的 转 向, 在 客 户 端 浏 览 器 地 址 栏 中 不 会 显 示 出 转 向 后 的 地 址 ; 后 者 则 是 完 全 的 跳 转, 浏 览 器 将 会 得 到 跳 转 的 地 址, 并 重 新 发 送 请 求 链 接 这 样, 从 浏 览 器 的 地 址 栏 中 可 以 看 到 跳 转 后 的 链 接 地 址 所 以, 前 者 更 加 高 效, 在 前 者 可 以 满 第 28 页 共 33 页
足 需 要 时, 尽 量 使 用 forward() 方 法, 并 且, 这 样 也 有 助 于 隐 藏 实 际 的 链 接 在 有 些 情 况 下, 比 如, 需 要 跳 转 到 一 个 其 它 服 务 器 上 的 资 源, 则 必 须 使 用 sendredirect() 方 法 三 十 写 一 个 简 单 的 C/S 结 构 程 序,Java 的 通 信 编 程, 编 程 题 ( 或 问 答 ), 用 JAVA SOCKET 编 程, 读 服 务 器 几 个 字 符, 再 写 入 本 地 显 示? 答 :Server 端 程 序 : package test; import java.net.*; import java.io.*; public class Server private ServerSocket ss; private Socket socket; private BufferedReader in; private PrintWriter out; public Server() try ss=new ServerSocket(10000); 第 29 页 共 33 页
while(true) socket = ss.accept(); String RemoteIP = socket.getinetaddress().gethostaddress(); String RemotePort = ":"+socket.getlocalport(); System.out.println("A client come in!ip:"+remoteip+remoteport); in = new BufferedReader(new InputStreamReader(socket.getInputStream())); String line = in.readline(); System.out.println("Cleint send is :" + line); out = new PrintWriter(socket.getOutputStream(),true); out.println("your Message Received!"); out.close(); in.close(); socket.close(); } }catch (IOException e) 第 30 页 共 33 页
out.println("wrong"); } } public static void main(string[] args) new Server(); } }; Client 端 程 序 : package test; import java.io.*; import java.net.*; public class Client Socket socket; BufferedReader in; PrintWriter out; public Client() try 第 31 页 共 33 页
System.out.println("Try to Connect to 127.0.0.1:10000"); socket = new Socket("127.0.0.1",10000); System.out.println("The Server Connected!"); System.out.println("Please enter some Character:"); BufferedReader line = new BufferedReader(new InputStreamReader(System.in)); out = new PrintWriter(socket.getOutputStream(),true); out.println(line.readline()); in = new BufferedReader(new InputStreamReader(socket.getInputStream())); System.out.println(in.readLine()); out.close(); in.close(); socket.close(); }catch(ioexception e) out.println("wrong"); } 第 32 页 共 33 页
} public static void main(string[] args) new Client(); } }; 第 33 页 共 33 页