《计算机程序员(Java)(三级)-- 指导手册》 ?
第一部分:基本概念
一. 单选题
1. 下面关于Java的说法哪些是错误的? (java面向对象的特征) A. Java是一种完全面向对象的程序设计语言 B. Java支持goto语句
C. Java提供了许多机制来保证程序的健壮性和安全性 D. java是可以跨平台的一门语言
答案:[B]
2. 若要编写一个类Hello,下列说法中哪些是错误的?(java编码规范)
A. 源代码文件必须叫做Hello.java或者hello.java,否则编译出错 B. 编译后生成的二进制码文件为Hello.class C. 运行的命令为java Hello
D. 若将文件Hello.class改名为hello.class,那么用命令java hello也可以运行
答案:[D]
hello.java Hello
javac Hello.java
3. 下面哪些不是Java的基本数据类型?(java编码规范) A. byte B. char C. String D. boolean
答案:[C]
4. 下列选项中不属于软件产业危机的是哪一项?(软件开发的生命周期)
A. B. C. D.
开发周期过长 缺乏技术人才 成本过高
不能在把软件交给客户之前发现所有的错误
答案:[B]
5. List接口描述的是一种什么样的抽象数据结构?(java集合)
A. 一组元素,可以有相同的元素,元素有先后顺序 B. 一组元素,不能有相同的元素,元素有先后顺序 C. 一组元素,可以有相同的元素,元素没有先后顺序 D. 一组元素,不能有相同的元素,元素没有先后顺序
答案:[A]
6. Set接口描述的是一种什么样的抽象数据结构?(java集合)
A. 一组元素,可以有相同的元素,元素有先后顺序 B. 一组元素,不能有相同的元素,元素有先后顺序 C. 一组元素,可以有相同的元素,元素没有先后顺序 D. 一组元素,不能有相同的元素,元素没有先后顺序
答案:[D]
7. Map接口描述的是一种什么样的抽象数据结构?(java集合)
A. 一组元素,可以有相同的元素,元素有先后顺序
B. 一组元素,任意两个元素的关键字不能相同,值也不能相同 C. 一组元素,任意两个元素的关键字不能相同,值可以相同 D. 一组元素,不能有相同的元素,元素没有先后顺序
答案:[C]
8. 存放到HashMap中的对象必须实现哪两个方法才能被正确处理?(java集合)
A. equals和compareTo B. equals和hashCode C. hashCode和toString D. clone和compareTo
答案:[B]
9. 下面关于Java中主要异常类的说法中,错误的是?(java异常处理)
A. Exception类是所有异常类的祖先
B. Error类用于描述系统的内部错误和资源耗尽等严重错误,程序必须捕获这种类型的错误
C. 产生IOException的原因是程序输入输出遇到了意外的情况
D. RuntimeException是虚拟机运行时可能出现的异常,Java默认自动处理
答案:[B]
Throwable是所有错误和异常类的祖先 Exception是所有异常类的祖先 Error
10. 关于异常的概念,下面说法中哪些是错误的?(java异常处理)
A. 有些异常是因为代码编写有问题,可以通过修改代码来消除 B. 有些异常是程序运行的环境造成的,无法通过修改代码消除 C. 出现异常后应该报告用户原因并退出程序
D. 异常是程序运行时导致中断了正常的指令流的一种事件
答案:[C]
11. 要从一个图像文件中读入数据,应该使用哪种流?(流的概念)
A. FileReader
B. FileInputStream C. ObjectInputSream D. ImageInputStream
答案:[B]
流分类:字符流和字节流 ImageInputStream不存在 图像文件是二进制文件。
12. 要从一个文本文件中读入字符串,应该使用哪种流?(流的概念)
A. FileReader
B. FileInputStream C. ObjectInputSream D. ImageInputStream
答案:[A]
13. 下面关于对象序列化的说法那些是错误的?(java序列化)
A. 需要序列化的类,要实现Serializable接口,但不用额外实现任何方法
B. 不同类的对象可以写入一个流中,对象和原始数据类型的变量也可以混合写入 C. 向对象流中写入一个对象时,该对象引用到的其他对象也会写入流中,而且从流中读出时会自动还原为原来的引用关系
D. 向对象流中写入对象时,类 (静态) 变量也会写入
答案:[D]
提示:Serializable接口中没有定义任何方法 ObjectOutputStream
类的静态变量及transient型变量都不会写入
14.利用Socket类进行网络通讯时,首先需要确定哪些信息?(输入输出处理网络编程)
A. 首先需要确定网络接入方式 B. 首先需要确定网络传输速度
C. 首先需要确定所采用的网络接口协议 D. 首先需要确定服务器和客户端
答案:[D]
15.下面的哪一项不是面向过程开发模式的特点?( )(软件开发的步骤)
A. 过程性开发模式侧重建立构成问题解决的处理流 B. 系统的状态保存在各个数据抽象所定义的数据存储中
C. 数据抽象、数据结构根据算法步骤的要求开发,它贯穿于过程,提供过程所要求操
作的信息
D. 系统的状态是一组全局变量,这组全局变量保存状态的值,把它们从一个过程传送到另一个过程
答案:[D]
16.FAST 方法被应用在软件开发的哪个阶段?( )(软件开发的生命周期)
A. 分析和规约的早期阶段 B. 设计阶段 C.实现阶段 D. 测试阶段
答案:[A]
FAST ?
17. 执行一条UPDATE语句,Statement提供的方法中最合适的是哪个?(jdbc)
A. execute
B. executeQuery C. executeBatch D. executeUpdate
答案:[D]
Statement 接口提供了三种执行 SQL 语句的方法:executeQuery、executeUpdate 和 execute。使用哪一个方法由 SQL 语句所产生的内容决定。
方法executeQuery
用于产生单个结果集的语句,例如 SELECT 语句。 被使用最多的执行 SQL 语句的方法是 executeQuery。这个方法被用来执行 SELECT 语句,它几乎是使用最多的 SQL 语句。
方法executeUpdate
用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL(数据定义语言)语句,例如 CREATE TABLE 和 DROP TABLE。INSERT、UPDATE 或 DELETE 语句的效果是修改表中零行或多行中的一列或多列。executeUpdate 的返回值是一个整数,指示受影响的行数(即更新计数)。对于 CREATE TABLE 或 DROP TABLE 等不操作行的语句,executeUpdate 的返回值总为零。
使用executeUpdate方法是因为在 createTableCoffees 中的 SQL 语句是 DDL (数据定义语言)语句。创建表,改变表,删除表都是 DDL 语句的例子,要用 executeUpdate 方法来执行。你也可以从它的名字里看出,方法 executeUpdate 也被用于执行更新表 SQL 语句。实际上,相对于创建表来说,executeUpdate 用于更新表的时间更多,因为表只需要创建一次,但经常被更新。
方法execute:
用于执行返回多个结果集、多个更新计数或二者组合的语句。因为多数程序员不会需要该高级功能
execute方法应该仅在语句能返回多个ResultSet对象、多个更新计数或ResultSet对象与更新计数的组合时使用。当执行某个已存储过程 或动态执行未知 SQL 字符串(即应用程序程序员在编译时未知)时,有可能出现多个结果的情况,尽管这种情况很少见。
因为方法 execute 处理非常规情况,所以获取其结果需要一些特殊处理并不足为怪。例如,假定已知某个过程返回两个结果集,则在使用方法 execute 执行该过程后,必须调用方法 getResultSet 获得第一个结果集,然后调用适当的 getXXX 方法获取其中的值。要获得第二个结果集,需要先调用 getMoreResults 方法,然后再调用 getResultSet 方法。如果已知某个过程返回两个更新计数,则首先调用方法 getUpdateCount,然后调用 getMoreResults,并再次调用 getUpdateCount。
对于不知道返回内容,则情况更为复杂。如果结果是 ResultSet 对象,则方法 execute 返回 true;如果结果是 Java int,则返回 false。如果返回 int,则意味着结果是更新计数或执行的语句是 DDL 命令。在调用方法 execute 之后要做的第一件事情是调用 getResultSet 或 getUpdateCount。调用方法 getResultSet 可以获得两个或多个 ResultSet 对象中第一个对象;或调用方法 getUpdateCount 可以获得两个或多个更新计数中第一个更新计数的内容。
当 SQL 语句的结果不是结果集时,则方法 getResultSet 将返回 null。这可能意味着结果是一个更新计数或没有其它结果。在这种情况下,判断 null 真正含义的唯一方法是调用方法 getUpdateCount,它将返回一个整数。这个整数为调用语句所影响的行数;如果为 -1 则表示结果是结果集或没有结果。如果方法 getResultSet 已返回 null(表示结果不是 ResultSet 对象),则返回值 -1 表示没有其它结果。也就是说,当下列条件为真时表示没有结果(或没有其它结果):
((stmt.getResultSet() == null) && (stmt.getUpdateCount() == -1))
如果已经调用方法 getResultSet 并处理了它返回的 ResultSet 对象,则有必要调用方法 getMoreResults 以确定是否有其它结果集或更新计数。如果 getMoreResults 返回 true,则需要再次调用 getResultSet 来检索下一个结果集。如上所述,如果 getResultSet 返回 null,则需要调用 getUpdateCount 来检查 null 是表示结果为更新计数还是表示没有其它结果。
当 getMoreResults 返回 false 时,它表示该 SQL 语句返回一个更新计数或没有其它结果。因此需要调用方法 getUpdateCount 来检查它是哪一种情况。在这种情况下,当下列条件为真时表示没有其它结果:
((stmt.getMoreResults() == false) && (stmt.getUpdateCount() == -1))
下面的代码演示了一种方法用来确认已访问调用方法 execute 所产生的全部结果集和更新计数:
stmt.execute(queryStringWithUnknownResults); while (true) {
int rowCount = stmt.getUpdateCount(); if (rowCount > 0) { // 它是更新计数
System.out.println(\stmt.getMoreResults(); continue; }
if (rowCount == 0) { // DDL 命令或 0 个更新
System.out.println(\stmt.getMoreResults(); continue; }
// 执行到这里,证明有一个结果集 // 或没有其它结果
ResultSet rs = stmt.getResultSet; if (rs != null) {
. . . // 使用元数据获得关于结果集列的信息 while (rs.next()) { . . . // 处理结果
stmt.getMoreResults(); continue; }
break; // 没有其它结果
18 执行一条DELETE语句,Statement提供的方法中最合适的是哪个?(jdbc)
A. execute
B. executeQuery C. executeBatch D. executeUpdate
答案:[D]
19.从HTTP请求中,获得请求参数,应该调用哪个方法? (Servlet) (A) 调用HttpServletRequest对象的getAttribute()方法 (B) 调用ServletContext对象的getAttribute()方法
(C) 调用HttpServletRequest对象的getParameter()方法 (D) 以上都不对
答案 [C]
20.ServletContext对象是由谁创建的?() (Servlet) (A)由Servlet容器负责创建,对于每个HTTP请求, Servlet容器都会创建一个ServletContext对象
(B)由Java Web应用本身负责为自己创建一个ServletContext对象
(C)由Servlet容器负责创建,对于每个Java Web应用,在启动时,Servlet容器都会创建一个ServletContext对象 (D)以上说法都不对
答案[C]
二.多选题
1. Java中,变量的命名可以采用下列哪些规范?(java编程规范) A. 用名词作为变量名,全部小写
B. 用名词作为变量名,第一个字母大写 C. 用名词短语作为变量名,全部小写
D. 用名词短语作为变量名,除第一个词首字母小写外,后面每个词第一个字母大写
答案:[A D]
Camel命名法
2. Java代码中可以使用下列哪些注释方式?(java编程规范) A. /* comment */ B. // comment
C. /** @author comment */
D. # comment
答案:[ABC]
行注释 段落注释
文档化注释(JavaDoc)
3.Java垃圾回收机制的两种方法:(java 垃圾回收机制) A标记法
B 整体搬移法 C 垃圾模块处理法 D 以上都不对 答案:[A B]
引用计数(早期JVM使用)
对象引用遍历(现在被大多数JVM采用)
标记法:
首先遍历对象图并标记可以到达的对象,然后扫描堆以寻找未标记对象并释放它们的内存。
整体搬移法 ?
4. 下面哪些说法是正确的?(java内部类) A. 匿名内部类可以在方法内部声明 B. 匿名内部类的构造函数可以有参数
C. 匿名内部类如果是除Object类外的某个类的子类,还可以实现多个接口
D. 匿名内部类如果是除Object类外的某个类的子类,至多只能再实现一个接口
答案:[AB]
int v = 1;
A a = new A(v) { { }
void method() {
} }
a.method();
匿名类尽管没有构造方法,但是可以在匿名类中提供一段实例初始化代码。
5.下列哪些活动属于软件过程的基本活动?(软件开发的步骤) A. 软件需求分析 B. 软件设计 C. 软件实现
D. 软件维护
答案:[ABC]
6.网络拓扑结构分为 (网络拓扑结构) A. 星型网络结构 B.环型网络结构 C.总线型网络结构 D.网状结构
答案[ABCD]
7. 对象流中可以写入哪些类型的数据?(流) A. 原始数据类型 B. 对象
C. 实现了序列化接口的对象 D. 数组
答案:[A C]
D也是正确的
因为Java中的数组也是一种实现了序列化接口的对象
A 原始数据类型? 基本数据类型? Primitive 可以看出题目是从英文翻译过来的
8. 哪些情况会造成当前线程阻塞:(线程) A. 调用Thread类的wait方法 B. 调用Thread类的sleep方法 C. 创建了一个新的线程
D. 当前线程运行的时间太长了
答案:[A B]
9. 建立TCP服务器端需要哪两个步骤?(java网络编程) A. 建立一个ServerSocket对象 B. 建立一个Socket对象 C. 开始监听
D. 建立Socket连接
答案:[A C]
10. Java中的继承有什么特点?(类之间的关系) A. 子类继承父类的构造函数 B. 一个类可以继承自多个类
C. 所有类缺省为Object类的子类 D. 单继承性
答案:[C D]
11.Java面向对象的特征是() (Java面向对象的特征) A 继承 B 封装 C 多态 D 调用
答案:[A B C]
12.面向对象软件开发的特点:(软件开发的特点)
A. 模型从需求开始被开发
B. 模型逐步演化为详细的类模型、类连接和关系、系统设计和分配、以及对象设计 C. 测试的目标是在错误传播到下一次递进前发现错误 D. 以功能进行模块划分
答案:[A B C]
13.在Java中,关于捕获异常的语法try-catch-finally的下列描述正确的是哪个项目? (java异常处理)
A. try-catch必须配对使用 B. try可以单独使用
C. try-finally可以配对使用
D. 在try-catch后如果定义了finally, 则finally肯定会执行
答案:[AD]
正确答案应该是:C
System.exit();
14.MVC模式的优势有哪些?()(MVC模式)
A) MVC模式使应用程序的结构更加清晰,通过将代码按照层次划分为业务逻辑/数据层、用户界面和应用流程控制这三个层次,能够增强代码的稳定性。 B) MVC模式实现了很好的分布式组件架构; C) 对于项目开发而言,MVC三层的分离有利于在项目小组内按照小组成员各自的擅长进行分工,有利于三个部分并行开发、加快项目进度。
D) MVC模块功能的划分有利于在代码修改过程中进行模块的隔离,而不需要把具有不同功能的代码混杂在一起造成混乱。
答案:[A C D]
15. Statement的execute方法、executeQuery方法和executeUpdate方法有何异同?(jdbc) A. 返回值的方式不同 B. 适用的SQL语句不同 C. 作用的数据库不同 D. 三个方法是等价的
答案:[A B]
ResultSet
int
boolean
16. Spring的两种核心思想()(spring) A Spring IOC编程 B Spring AOP编程 C Spring AOP的使用 D Spring 事务管理
答案[ABCD]
我认为答案应该是:A B 注入依赖
面向切面编程(AOP)
17.下面哪一项不是JDBC的用途?(jdbc用途) A)与数据库建立连接
B)操作数据库,处理数据库返回的结果 C)在网页中生成表格
D)向数据库管理系统发送 SQL语句
答案 [CD] C
18.以下关于JDBC的叙述中,正确的是(jdbc概念) A. JDBC是一套API集合
B. JDBC设置了许多允许Java程序连接数据库的框架 C. ODBC不能在Java程序中直接实现,而JDBC可以 D. JDBC提供了JDBC/ODBC之间的桥梁
答案 [A B]
JDBC/ODBC Bridge是Sun公司为了让JDBC能够通过ODBC连接数据库而特意开发的。它独立于JDBC。
19. Java JDBC异常类中包含的成员有(JDBC的数据异常处理) A. Java.Sql.DataTruncation B. Java.Sql.SQLException C. Java.Sql.SQLWarning D. Java.Sql.SQLErrorCode
答案[AC]
A, B, C
DataTruncation与SQLWarning是SQLException的子类,SQLException是Exception的子类。
20. 在XML中,下列关于DOM的叙述()是正确的。(xml dom解析)
(A) DOM是独立于开发语言和平台的,因此使用Visual Basic、Java、Visual C++等开发工具使用的DOM编程API是一致的
B) XML文档通过load方法被装载进内存后,在内存中形成一个DOM文档对象模型树 C) 通过DOM API,软件开发人员可以控制XML文档的结构和内容 D) 通过DOM在XML文档中只能按照顺序方式导航
答案 [A B C]
DOM也可以搜索指定的节点集合
21. 为定义一个XML文档的结构,开发者可以使用的XML技术有()。(xml) a) UML b) DTD
c) Namespace d) XML Schema
答案 [B D]
22.一般情况下,关系数据模型与对象模型之间有哪些匹配关系()(数据库) A) 表对应类 B) 记录对应对象
C) 表的字段对应类的属性
D) 表之间的参考关系对应类之间的依赖关系
答案 [A B C]
提示:UML中的依赖关系常用来描述两个类之间的一种临时的动态的关联关系,这种关系不需要持久化。
23.JDBC有哪两种方式可以连接数据库?()(jdbc获得数据库连接) A. 数据库的管理工具 B. 数据库的JDBC驱动 C. 数据库查询语言SQL D. JDBC-ODBC桥接器
答案:[B D]
24.以下哪些属于Session的方法?(Hibernate中 session内的方法组成) A) load() B) save() C) delete() D) update()
答案:[A B C D]
25.在Struts应用的视图中包含哪些组件?()(struts 框架) 选项:
(A) JSP (B) Servlet
(C) ActionServlet (D) 客户化标签
答案:[A D]
26.在Struts应用的控制器中包含哪些组件?(struts 框架) 选项:
(A) 代表业务逻辑或业务数据的JavaBean (B) Servlet
(C) ActionServlet (D) Action
答案:[B C D]
A应该属于Model
27下面哪些任务是RequestProcessor完成的?()(struts action 的建立) 选项:
(A) 如果需要的话,创建ActionForm实例,组装数据,并进行表单验证 (B) 找到匹配的Action实例,调用其execute()方法
(C) 把请求转发到Action的execute()方法返回的ActionForward代表的组件 (D) 把Struts配置文件信息加载到内存中
答案:[A B C]
参考《Struts In Action》一书9.2节。
ActionServlet接收到客户请求后,会进行一连串的初始化操作,然后就会将客户请求转交给合适的处理器进行处理,这个合适的处理器就是org.apache.struts.action.RequestProcessor。
RequestProcessor的任务就是处理HttpServletRequest请求,并创建HttpServletResponse。
创建响应时,它利用processActionForward方法转发到JSP页面或其它资源。
28.J2EE组件和MVC架构的对应理解正确的是:(mvc)
A)J2EE在Web容器中的Servlet提供了业务流程控制,实现了MVC中的Controller。 B)Bean实现了业务逻辑,也就是Model。 C)J2EE在客户层中的Applet 以及Web层中的JSP实现了面向浏览器的数据表现,是View部分。
D)Application Client实现了面向桌面应用的数据逻辑。这是MVC架构中的Model部分。
答案:[A B C]
29.Struts 框架的包描述错误的是:(struts框架结构)
A)action 包括控制器类ActionForm、ActionMessage、DispatchAction等。 B)config 包括在Struts配置文件内存中表示的配置类。 C)util 包括整个框架使用的通用工具类。 D)plugins 包括支持动态插入和加载组件的
答案:A
A. action包中不包含DispatchAction, DispatchAction在actions包下面
Struts框架包大约包含300个类,分8个核心包。
Validator,config,tiles,actions,action,upload,taglib,util
action包:包含控制器类ActionForm, Actionmessage以及其他少数需要的框架组件;
actions包:包含现成的Action类,比如DispatchAction可以为应用程序所用,或被应用程序扩展; config包:包括在Struts配置文件内存中表示的配置类; taglib包:包含用于Struts标记库的标记处理程序类; tiles包:包含Tiles框架包使用的类;
upload包:包括用于通过浏览器从本地文件系统上载和下载文件的类; util包:包含整个框架包中使用的通用的工具类;
validator包:包含当部署验证器时Struts框架包使用的针对Struts的扩展类。实际的Validator类和接口位于common包,这个包于Struts框架包分离。
30.JSP页面包括以下哪些元素?(三个答案)(JSP元素的组成) A)JSP指令 B)JSP Action C)JSP脚本 D)JSP控件
答案:[A B C]
第四个元素是JSP注释
31.以下方法是Servlet的生命周期接口定义的?(servlet生命周期) A)init() B)service() C)destroy() D)create()
答案:[A B C]
32.多重继承在概念上是比较直接,也是真实世界的体现;然而在实际使用时却要非常谨慎,这主要是因为多重继承存在很多潜在问题,具体表现为()(uml) A. 由于继承多个父类,子类经常存在命名冲突
B. 多重继承增加了系统的复杂程度
C. 有些编程语言不支持多重继承的实现 D. UML语言不支持多重继承的创建
答案:[A C]
33.在下图所示的分层构架中,框架层可以直接使用哪些层次提供的服务:(uml)
A. 应用程序层
B. 框架层
C. 基础设施层
D. 复用层
答案:[B C D]
提示:分层构架中,同一层之间的服务可以相互调用,上一层可以调用下一层的服务,但是下不层不能调用上一层的服务。
34. 在下面的类图中,与卡车有关联的类有():(uml)
A. 人
B. 轿车
C. 卡车
D. 拖车
答案:[A D]
聚合关系是一种特殊的关联。
35.项目计划阶段的目标是()(项目管理) A 做出本项目的计划 B 制定出进度表
C 建立配置与变更管理
D 提出产品上市日期
答案:[A B D]
三.判断题
1.软件开发方法可归纳为三种模式:基于瀑布模型的结构化生命周期法、基于动态需求定义的原型化方法和面向对象的方法。(对)软件开发 2. JDBC是ODBC的升级,适合于各种编程语言调用。( 错 )jdbc 3.CallableStatement 对象是用 Connection 方法 prepareCall 创建的。(对)jdbc
4. 为定义一个XML文档的结构,开发者可以使用的XML技术有DTD, XML Schema, UML(错) xml
5.在XML中,DOM中IXMLDOMNodeList的length属性表示的是该对象中元素节点的数量(错)xml
6.Session有open()方法(错)struts
7 创建jdbc总共有6大步,最后一步是处理结果集(错)jdbc 8,hibernate和jdbc相比能够处理大量的数据(错)hibernate 9. 系统自身的数据库能够作为系统的角色(错)uml
10.在各种不同的软件需求中,下列哪个选项描述了用户使用产品必须要完成的任务,可以在用例模型中予以说明功能需求(对)uml
第二部分:应用操作
一. 单选题
1. 要使用链表存放数字0到9,下面横线上应该填写什么内容?(java集合的遍历)
List l = new ___________; for(int i=0;i<10;i++) { l.add(____________); }
A. List() i
B. ArrayList() Object.newInstance(i) C. HashMap() new Object(i) D. LinkedList() new Integer(i)
答案:【D】
List共有两种实现类:ArrayList和LinkedList
Object.newInstance(i)是什么意思?
2. l是一个ArrayList对象,要用枚举器枚举l中的所有元素,横线上应该填写什么内容? (java集合的遍历)
Iterator iterator = __________; while(iterator.________) { System.out.println(iterator.________); }
A. new Iterator(l) hasNext() next() B. new Iterator(l) next() current() C. l.iterator() hasNext() next() D. l.iterator() next() current()
答案:【C】
foreach
枚举是集合类的基本用法,必须牢记。
3. 在单链表指针为p的结点之后插入指针为s的结点,正确的操作是:( )。 (数据结构链表存储)
A.p->next=s; s->next=p->next; B. s->next=p->next; p->next=s; C.p->next=s; p->next=s->next; D. p->next=s->next; p->next=s;
答案:【B】
4.一个栈的输入序列为123?n,若输出序列的第一个元素是n,输出第i(1<=i<=n)个元素是( )。(数据结构栈的存储)
A. 不确定 B. n-i+1 C. i D. n-i
答案:【B】
5设树T的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1 则T中的叶子数为( )(数据结构二叉树操作)
A.5 B.6 C.7 D.8
答案:【D】
6..已知一棵二叉树的前序遍历结果为ABCDEF,中序遍历结果为CBAEDF,则后序遍历的结果为( )。(数据结构二叉树遍历)
A.CBEFDA B. FEDCBA C. CBEDFA D.不定
答案:【A】
首先根据前序的第一个值可以确定二叉树的根是A,然后在中序中找到A的位置,A之前
的序列为节点A的左子树,A之后的序列为A的右子树。因此判断出A的左子树的前序为BC,中序为CB。右子树的前序为DEF,中序为EDF。 按照前面的方法进一步判断中A左子树的根为B… 最终得出整棵树的结果如下图:
7. 构架分析一个很重要的原则是避免包之间的循环依赖,下面四个选项中哪个构架示意图中不存在循环依赖:uml
A. B. C. D.
答案:【B】
8.如下图所示的部署模型中,处理器Process#1和设备Device#1之间的连接,不可能代表:uml
A. TCP/IP协议
B. ODBC协议
C. 关联关系
D. 物理网线
答案:【C】
9.以下是单例模式的()模式(java Singleton模式) public class Singleton { private Singleton(){}
private static Singleton instance = null;
public static synchronized Singleton getInstance() { if (instance == null) {
instance = new Singleton(); }
return instance;
} }
A.硬汉式 B懒汉式 C工厂模式 D以上都不是
答案【B】
单例模式分为“懒汉式”与“饿汉式”,它们的区别在于建立单例对象的时间不同。
“懒汉式”是在你真正用到的时候才去建这个单例对象。“饿汉式”是不管你用不用上,一开始就建立这个单例对象。
10.以下代码是Java的什么模式()(java模式)
Iterator it = list.iterator();
while(it.hasNext()){
//using “it.next();”do some businesss logic
}
A Factory Method模式 B Prototype模式 C Singleton模式 D Iterator模式
答案【D】
11. 下面的代码有没有问题?(java类设计) class Ellipse { private double radiusA; private double radiusB; public Ellipse(double a, double b) { radiusA = a; radiusB = b; } }
class Circle extends Ellipse { }
A. 没有问题
B. 运行时创建Circle类型的对象出错,因为没定义构造函数 C. 编译错误,因为Circle类没有定义构造函数
D. 编译错误,Circle类的缺省构造函数需要调用Ellipse的缺省构造函数,参数不匹配
答案:[D]
Circle中有默认构造函数,而Ellipse中没有。
Circle的默认构造函数会自动调用父类的默认构造函数。
12. 下面的代码中,横线上填写什么内容才没有错误?(Java类设计) class Test1{
private static int classIndex = 0; private ______ int index; public static void main(String[] args) { Test1 t = new Test1(); System.out.println( ________ ); } public ______ Test1() { index = ++classIndex; } }
A. static index static B. static classIndex 空白 C. 空白 index 空白
D. 空白 classIndex 空白
答案:[D]
B ?
13. 下面的代码中有什么错误?(java类设计) 1 interface MyInterface { 2 int var = 0; 3 public void fun1(); 4 }
5 public class MyClass implements MyInterface{ 6 public static void main(String[] args){ 7 MyInterface t = new MyClass(); 8 t.var = 1; 9 t.fun1(); 10 } 11 public void fun1() { 12 System.out.println(var); 13 } 14 }
A. 第2行,变量var必须声明为public static final的 B. 第7行,不能创建接口MyInterface类型的变量 C. 第8行,不能为常量var赋值
D. 第11行,方法fun1必须声明为public static final的
答案:[C]
14现有两个类,父类为Person,子类为Chinese,Person中有如下的定义片段: (java类设计) ??
String name=\
public Person(){name=\??
Chinese中有如下的定义片段: ??
public Chinese(int tmpage) { name=\}
public String getName() { return name; } ??
第三个类Demo是这样定义的: public class Demo { public static void main(String args[]) { Chinese c=new Chinese(25); System.out.println(\
} }
程序进行编译执行时,会产生什么样的执行结果?() A. This chinese's name is: a man B. This chinese's name is: a chinese C. This chinese's name is: noname D 编译运行过程出错
答案【B】
15. 以下JSP与Servlet 的交互调用的代码示例说明错误的是: (层次结构表示层之间的应用)
A)getServletContext().getResponseDispatcher(“/pages/showResults.jsp”).forward(req, res);是在Servlet中使用ResponseDispatcher调用名为showResults的JSP页面。 B)
相关推荐: