《使用Java实现面向对象编程》阶段测试-笔试试卷
一、选择题(共25题,每题4分,满分100分)
1) 下列选项中关于Java中ArrayList、LinkedList、HashMap三个类的描述错误的是( c )。
A. ArrayList和LinkedList均实现了List接口
B. ArrayList的访问速度比LinkedList快
C. 添加和删除元素时,ArrayList的表现更佳
D. HashMap实现Map接口,它允许任何类型的键和值对象,允许将null用作键或值
2) 关于Java中的集合实现类,下列说法描述错误的是( d )。
A. HashMap是Map接口的实现类
B. ArrayList对象是长度可变的对象引用数组
C. 集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法
D. Set中存储一组不允许重复、有序的对象
3) 对于Java中的集合类java.util.ArrayList,以下说法正确的是( c )。
A. 这个集合中的元素是无序的
B. 可以通过键来获取这个集合中的元素
C. 在对这个集合的元素执行遍历操作时,效率比较高
D. 可以通过addFirst()方法,在列表的首部插入元素
4) 给定如下Java代码,其中第( d )行代码有错误。
import java.util.*;
public class MapTest {
public static void main(String[] args) {
List pList = new ArrayList();
pList.add("A"); //第五行
pList.add("B"); //第六行
for (int i = 0; i < pList.size(); i++) { //第七行
String str = pList.get(i); //第八行
System.out.print(str);
}
}
}
A. 五
B. 六
C. 七
D. 八
5) 给定如下Java代码,可以填入横线处的代码是( d )。
import java.util.*;
public class Test {
public static void main(String[] args) {
________
list.addLast("001");
}
}
A. List list = new ArrayList();
B. List list = new List();
C. ArrayList list = new ArrayList();
D. LinkedList list = new LinkedList();
6) 在Java中,( a )类的对象可被用作堆栈或者队列。
A. LinkedList
B. ArrayList
C. Collection
D. HashMap
7) 在Java中,关于HashMap类的描述,以下说法错误的是( b )。
A. HashMap使用键/值的形式保存数据
B. HashMap能够保证其中元素的顺序
C. HashMap的存储方式是哈希表,查询指定元素效率高
D. HashMap通过get( key)获取对应的值
8) 阅读下面的Java代码,运行结果描述正确的是( c )。
import java.util.*;
public class TestMap{
public statci void main(String[] args){
Map map=new HashMap( );
map.put(“first”,”football”);
map.put(“first”,”basketball”);
System.out.print(map.get(“first”));
}
}
A. 编译时发生错误
B. 编译通过,运行时发生错误
C. 正确运行,显示basketball
D. 正确运行,显示football
9) 在Java中,JDBC API定义了一组用于与数据库进行通信的接口和类,它们包括在( b )包中。
A. java.lang
B. java.sql
C. java.util
D. java.math
10) 使用JDBC访问数据库时,下列关于JDBC的说法正确的是( b )。
A. Connection接口负责执行SQL语句
B. 可以使用Class.forName()方法把JDBC驱动类装载入Java虚拟机中
C. Statement接口由Connection产生负责保存返回的查询结果
D. DriverManager类负责连接数据库并传送数据
11) 在Java中,使用JDBC开发应用程序时处理步骤正确的是(a )。
A. 1.加载数据库驱动; 2. 创建数据库连接; 3. 执行SQL命令; 4.处理结果
B. 1.加载数据库驱动; 2.执行SQL命令; 3.创建数据库连接; 4.处理结果
C. 1.创建数据库连接; 2.加载数据库驱动; 3.执行SQL命令; 4.处理结果
D. 1.创建数据库连接; 2.执行SQL命令; 3.加载数据库驱动; 4.处理结果
12) 在Java中开发JDBC应用程序时,使用DriverManager类的getConnection()方法建立与数据源的连接语句为:
Connection con =
DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=news");
URL连接中的“news”表示的是( b )。
A. 用户名
B. 数据库的名称
C. 数据库服务器的机器名
D. 数据库中表的名称
13) 在Java中,以下关于得到ResultSet对象、PreparedStatement对象、Statement对象的说法,正确的是( ac )。
A. 可以使用Statement对象的executeQuery方法返回ResultSet对象
B. 可以使用Connection对象的createStatement方法获得PreparedStatement对象
C. 可以使用Connection对象的createStatement方法获得Statement对象
D. 可以使用Connection对象的executeQuery方法返回ResultSet对象
14) 在使用JDBC访问数据库时,关于Statement和PreparedStatement的描述错误的是( bd )。
A. PreparedStatement接口继承自Statement接口,因此PreparedStatement实例能够强 制转换成Statement实例来使用
B. 与Statement相比,使用PreparedStatement提高了SQL语句执行的性能,降低了安 全性
C. Statement实例和PreparedStatement实例,均能对数据库进行增删改查操作
D. Statement实例和PreparedStatement实例,均能够通过“?”作为占位符,用于后面 进行参数的设定
15) 假设SQL Server数据库中有表book,包含两个字段:id整型,title字符型。向此表插入数据的Java代码片段如下所示,其中 con为已正确获得的连接数据库的Connection对象,则以下描述正确的是( c )。
PreparedStatement pstmt=con.prepareStatement("insert into book(id, title) values(?,?)");
pstmt.setInt(0,10);
pstmt.setString(1,"java");
pstmt.executeUpdate();
A. 创建PreparedStatement对象的语句有错误
B. 向book表插入数据的sql语句有错误
C. setInt、setString方法有错误
D. PreparedStatement没有executeUpdate()方法
16) 给定一个Java程序的代码片段如下所示,其中conn为连接数据库的Connection对象,此处假定已经正确获得连接。在下划线处加入下列( b )代码,可以在控制台循环打印出student表中name数据列的值。
Statement stmt = conn.createStatement();
String query = "select * from student";
java.sql.ResultSet rs = stmt.executeQuery(query);
___________
A. while (rs.hasNext()) {
System.out.println(rs.getString("name"));
}
B. while (rs.next()) {
System.out.println(rs.getString("name"));
}
C. if(rs.next()) {
System.out.println(rs.getString("name"));
}
D. System.out.println(rs.getString("name"));
17) 以下选项中关于Oracle中数据库的说法错误的是( a )。
A. 数据库在逻辑上表现为数据文件、日志文件和控制文件等
B. 必须首先创建数据库,然后才能使用Oracle
C. 可在安装Oracle软件时同时创建数据库,也可以在安装后再单独创建数据库
D. 每个启动的数据库都对应一个数据库实例,然后由这个实例来访问和控制数据库
18) 使用数据库表student存放学生信息,其中birthday字段存放学生生日,查询该表中1980年9月15日及以后的学生信息,以下SQL语句正确的是( b )。
A. SELECT * FROM student WHERE birthday>='1980-09-15';
B. SELECT * FROM student WHERE birthday >='15-9月-1980';
C. SELECT * FROM student WHERE TO_DATE(birthday,'YYYY-MM-DD')>='2009-10-1';
D. SELECT * FROM student WHERE birthday>=TO_CHAR('1980-09-15','YYYY- MM-DD');
19) 一个数据库表包含性别字段,在该字段上建立( b )最合适。
A. 唯一索引
B. 位图索引
C. 基于函数的索引
D. B树索引
20) 以下选项中关于DAO模式的说法错误的是( c )。
A. DAO是“Data Access Object”的含义,实现对数据库资源的访问
B. DAO模式中要定义DAO接口和实现类,隔离了不同数据库的实现
C. DAO负责执行业务逻辑操作,将业务逻辑和数据访问隔离开来
D. 使用DAO模式提高了数据访问代码的复用性
21) 以下选项中关于Java分层开发技术中实体类的说法错误的是( d )。
A. 在分层开发中,不同层之间可以通过实体类来传输数据
B. 实体类一般对应一个数据库表,其属性和数据库表的字段对应
C. 实体类最好实现java.io.Serializable,支持序列化机制
D. 实体类的属性和方法一般均使用public修饰
22) 以下选项中关于Java中文件输入输出的说法正确的是( ac )。
A. 在Java中,文件的输入输出功能是通过流来实现的
B. 如果要把数据写入到一个文件中,需要创建一个输入流对象
C. 字符流在某些方面比如汉字的处理,比字节流更高效
D. 可以通过Reader r=new Reader("c:\\pet.txt")来创建一个输入流对象
23) 给定如下Java代码,实现文件复制功能,其中第( c )行代码有错误。
public class TestIO {
public static void main(String[] args) throws Exception {
Reader fr = new FileReader("c:\\source.txt"); //第三行
Writer fw = new FileWriter("c:\\target.txt");
char ch[] = new char[1024];
int length = fr.read(ch);//第六行
while (length != -1) {
fw.write(ch); //第八行
length = fr.read(ch);
}
if (null != fr)
fr.close(); //第十三行
if (null != fw)
fw.close();
}
}
A. 三
B. 六
C. 八
D. 十三