《Java高级程序设计》复习题

一_Java编程规范

一、填空题
1.  相对独立的程序块之间、变量说明之后必须_____。
2.  类的注释部分,描述部分说明该类或者接口的功能、作用、使用方法和注意事项,每次修改后增加作者、新版本号和当天天的日期,@since_____,@deprecated表示_____。
3.  比较运算符,赋值操作符“=”、“+=”,算术操作符“+”、“%”,逻辑操作符“&&”、“&”位域操作符“<<”、“^”等双目操作符的前后加_____。
4.  Java中的注释有3种形式:文档注释、多行注释、_____。
5.  方法的文档中,块标记@param用于说明_____的含义,@return用于说明_____的含义。

二、选择题
1.下列使用异常的做法错误的是_____。
A. 在程序中使用异常处理还是使用错误返回码处理,根据是否有利于程序结构来去确定,并且异常和错误码不应该混合使用,推荐使用异常
B. 一个方法不应抛出太多类型的异常。throws/exception子句标明的异常最好不要超过3个
C. 异常捕捉尽量不要直接使用catch(Exception ex),应该把异常细分处理
D. 程序内抛出的异常本身就可说明异常的类型、抛出条件,可不填写详细的描述信息。捕获异常后用exception.toString()取到详细信息后保存

2. 下列说法错误的是_____。
A. 段代码各语句之间有实质性关联并且是完成同一件功能的,那么可考虑把段代码构造成一个新的方法
B. 源程序中关系较为紧密的代码应尽可能相邻
C. 程序中可同时使用错误码和异常进行处理,推荐使用异常
D. 方法参数建议不超过5个

3. 下面说法错误的是_____。
A. 不要覆盖父类的私有方法
B. 类中不要使用非私有的非静态属性(类、方法、变量、代码块)
C. 类定义

{
    类的私有属性定义
    类的公有属性定义
    类的保护属性定义
    类的私有方法定义
    类的公有方法定义
    类的保护方法定义
}

D. 类私有方法的最大规模建议为15个

4.排版时,代码缩进应该采用的方式是_____。
A. Tab缩进
B. 2个空格缩进
C.4个空格缩进
D.8个空格缩进

5. 下列关于注释的说法正确的是_____。
A. 包注释可有可无,一般大家都是看类注释和方法注释
B. 可以把一个类的类注释改为它的文件注释
C. 类注释应该放在package关键字之后,class或者interface关键字之前
D. 文件注释应该使用Javadoc定义的方式注释,保证能够被收集并形成doc文档。

答案:
一、
1. 空行
2. 表示此功能何时被添加进来的;过期方法、接口、类
3. 空格
4. 单行注释
5. 方法中某参数;方法中返回值
二、
DCCCC

二_Java集合框架

一、填空题
1. LIst接口的特点是元素_____(有 | 无) 顺序,_____(可以 | 不可以) 重复。
2. Set接口的特点是元素_____(有 | 无) 顺序,_____(可以 | 不可以) 重复。
3. Map接口的特点是元素是key、value映射,其中value_____重复,key_____重复(可以 | 不可以)。

二、选择题
1. 下面说法不正确是_____。
A. 列表(List)、集合(Set) 和映射(Map) 都是Java.util包中的接口
B. List接口是可以包含重复元素的有序集合
C. Set接口是不包含重复元素的集合
D. next()方法将返回集合中的上一个元素

2. 下面关于迭代器说法错误的是_____。
A. 迭代器是取出集合元素的方式
B. 迭代器的hasNext()方法的返回值是布尔类型
C. List集合有特有迭代器
D. next()方法的返回集合中的上一个元素

3. Set集合的特点是_____。
A. 元素有序
B. 元素无序,不储存重复元素
C. 储存重复元素
D. Set集合都是线程安全的

4. 下面类或者接口中,不属于集合体系的是_____。
A. Java.util.Collections
B. Java.util.Map
C. Java.util.Vector
D. Java.util.Hashtable

5. 以下能以键值对的方式存储对象的接口的是_____。
A. Java.util.Collection
B. Java.util.Map
C. Java.util.HashMap
D. Java.util.Set

6. 在Java中,_____类可用于创建链表数据结构的对象。
A. LinkedList
B. ArrayList
C. Collection
D. HashMap


7. 代码的功能为:对于一个存放Person对象的ArrayList进行循环遍历,并输出每个Person对象的idCard 和userName。

public class Person
{
    private Long idCard;
    private String userName;
    //以下是getter和setter方法    //省略
}

List list = new ArrayList();

Person p1 = new Person();
p1.setIdCard(new Long(1001));
p1.setUserName("terry");

Person p2 = new Person();
p2.setIdCard(new Long(1002));
p1.setUserName("tom");
list.add(p1);
list.add(p2);

for(位置①)
{
System.out.println(Person.getIdCard()+":"+Person.getUserName());
}

那么位置①处的代码为_____。
A. List list : person
B. List list : Person
C. Person person : List
D. Person person : list

答案:
一、
1. 有;可以
2. 无;不可以
3. 可以;不可以
二、
DDBABAD

三_Java反射机制

一、填空题
1. 反射中常常用的几个类是______、______、______、______和______。
2. Field field[] = classType.getDeclaredFields(); 的作用是______。
3. Java可以在运行时动态获取某个类的类信息,这就是______。
4. Class clazz = Class.forName("com.yano.reflect.Person"); 的作用是______。
二、选择题
1. 下列哪个选项不属于Java程序加载类的步骤______。
A. 加载:读取class文件
B. 连接:验证内部结构,为静态资源分配空间,处理非静态引用
C. 初始化:将代码放到代码区,初始化静态成员,将静态和非静态分离
D. 创建对象:为该类创建一个普通的对象

2. 使用反射机制获取一个类的属性,下列关于getField()方法说法正确的是______。
A. 该方法需要一个String类型的参数来指定要获取的属性名
B. 该方法只能获取私有属性
C. 该方法只能获取公有属性
D. 该方法可以获取私有属性,但使用前必须先调用setAccessible(ture)

3. 下列关于通过反射方式获取方法并执行的过程说法正确的是______。
A. 通过 对象名.方法名( 参数列表 ) 的方式调用该方法
B. 通过 Class.getMethid( 方法名,参数类型列表 ) 的方式获取该方法
C. 通过 Class.getDeclaredMethod( 方法名,参数类型列表 ) 获取私有方法
D. 通过invoke(对象名,参数列表)方法来执行一个方法

4.关于反射机制下列说法错误的是 ______。
A. 反射机制指的是在程序运行过程中,通过.class文件加载并使用一个类的过程
B. 反射机制指的是在程序编译期间,通过.class文件加载并使用一个类的过程
C. 反射可以获取类中所有的属性和方法
D. 暴力反射可以获取类中私有的属性和方法

1. Class、Field、Method、Modified、Constructor
2. 获取初始化类表明的属性
3. 反射机制
4. 初始化类Person,并赋值给clazz
DCDB

四 _Java泛型机制

一、填空题
1.  Java泛型可以使用3种通配符进行限制,分别是:______、extends、super。
2.  List<? extends T>;的作用是_________。
3.  public V put (K key,V value){ }中,K代表_____,V代表_____。

二、选择题
1.以下哪种书写是正确的?
A.  ArrayList lists = new ArrayList();
B.  ArrayList lists = new ArrayList();
C.  ArrayList lists = new ArrayList();
D.  ArrayList lists = new ArrayList();

2. 泛型使用中的规则和限制是?
A.  泛型参数只能是类类型不能是简单类型
B.  同一种泛型可以对应多个版本(因为参数的类型是不确定的)
C.  泛型的类型参数可以有多个
D.  以上都是

3. 下面关于泛型的说法不正确的是?
A.  泛型的具体确定时间可以是在定义方法的时候
B.  泛型的具体确定时间可以是在创建对象的时候
C.  泛型的具体确定时间可以是继承父类定义子类的时候
D.  泛型就是Object类型

4. 父类声明:public class FXfather{...}
现在要定义一个FXfather的子类son,下面定义错误的是?
A.  class Son extends FXfather{ }
B.  class Son extends FXfather{ }
C.  class Son extends FXfather{ }
D.  class Son extends FXfather{ }

5. 关于泛型的说法正确的是?
A.  泛型是JDK1.5出现的新特性
B.  泛型是一种安全机制
C.  使用泛型避免了强制类型转换
D.  使用泛型必须进行强制类型转换

答案:
一、
1.  ?
2.  表示接收的类型是T的子类
3.  key的类型;value的数据类型
 二、
ADDBC

五 _Java序列化机制

一、填空题
1. 若要用ObjectOutputStream写入一个对象,那么这个对象必须实现_____接口,不然程序会抛出NoSerializableException类型的异常。
2. 对象的输出流将指定的对象写入到文件的过程,就是将对象_____的过程,对象的输入流将指定序列化好的文件读出来的过程,就是对象_____的过程。
3. ObjectOutputStream类扩展DataOutput接口。writeObject()方法是最重要的方法,用于_____。

二、选择题
1. 以下关于对象序列化的描述正确的是_____。
A. 使用FileOutputStream 可以将对象进行传输
B. 使用PrintWriter可以将对象进行传输
C. 使用ObjectOutputStream 类完成对象存储,使用ObjectputStream 类完成对象读取
D.  对象序列化的所属类需要实现Serializable接口

2. 以下关于序列的描述正确的是_____。
A. 所有Java对象都可序列化
B. 所有Java对象都必须序列化
C. Java对象的所有成员和方法都要序列化
D. Java对象是根据需要时才序列化

3. 序列化时使用FileOutputStream对象的_____方法。
A. writeObject()
B. readObject()
C. write()
D. read()

4. 可序列化类中的writeObject() 和readObject() 方法使用_____访问控制修饰符。
A. public
B. 没有访问控制修饰符
C. protected
D. private

1. Serializable
2. 序列化;反序列化
3. 将对象写入文件
CD、DAA

六_Java多线程机制

一、填空题
1. 调用Thread类的_____方法可以判断一个线程是存活。
2. 当某个类实现Runnable接口时,需要实现该接口的_____方法。
3. Java语言中线程优先级的默认值是_____。

二、选择题
1. Thread 类位于_____包中。
A. Java.sql
B. Java.io
C. Java.lang
D. Java.util

2. 用户在创建线程时所处的状态是_____,在用户使用该线程实例调用start()方法之前,线程就处于该状态。
A. 等待状态
B. 死亡状态
C. 休眠状态
D. 出生状态

3. 线程同步需要使用_____关键字。
A. synchrons
B. synchrongized
C. implements
D. extends

4. 下列说法中,错误的是_____。
A. 线程调度执行时是按照其优先级的高低顺序执行的
B. 一个线程创建好后即可立即执行
C. 用户程序类可以通过实现Runable接口来定义程序线程
D. 解除处于阻塞状态的线程后,线程便进入就绪状态

答案:
一、
1. isAlive
2. run
3. 5
二、
CDB、AB

七_Java网络编程

一、填空题
1. Socket技术是构建在_____协议之上的。
2. Datagrams技术是构建在_____协议之上的。
3. ServerSocket.accept()返回_____对象,是服务器与客户端相连。

1. URL地址由_____组成。
A. 文件名和主机名
B. 主机名和端口号
C. 协议名和资源名
D. IP地址和主机名

2. IP地址封装类是_____。
A. InetAddress类
B. Socket
C. URL类
D. ServerSocket

3. InetAddress类中获得主机名的方法是_____。
A. getFile()
B. getHostName()
C. getPath()
D. getHostAddress()

4. Java中面向无连接的数据报通信的类有_____。
A. DatagramPacket类
B. DatagramSocket类
C. DatagramPacket类和DatagramSocket类
D. Socket类

一、
1. TCP
2. UDP
3. socket
二、
CABC

八_Java数据库编程

一、填空题
1. URL定义了连接数据库时的协议、_____和数据库表示。
2. ResultSet对象的_____方法表示将光标从当前位置移向下一行。

二、选择题
1. 下面是一组对JDBC的描述,正确的说法是_____。
A. JDBC是一个数据库管理系统
B. JDBC是一个由类和接口组成的API
C. JDBC是一个驱动查询
D. JDBC是一组命令

2. 创建数据库连接的目的是_____。
A. 建立一条通往某个数据库的通道
B. 加载数据库驱动程序
C. 清空数据库
D. 为数据库增加记录

3. 要为数据库增加记录,应调试Statement对象的_____方法。
A. addRecord()
B. executeQuery()
C. executeUpdate()
D. executeAdd()

4. PreparedStatement对象的_____方法执行包含参数的动态INSERT、UPDATE、DELECT语句。
A. query()
B. execute()
C. executeUpdate()
D. executeQuery()

5. ResultSetMetaData对象的_____方法返回指定列序号的列名。
A. getColumnName()
B. getColumnCount()
C. getColumnLabel()
D. getColumnType()

6. 下列SQL语句中,哪一项可用executeQuery()方法发送到数据库_____。
A.Update
B.Delete
C.Select
D.Insert

7. 下面哪个选项不是客户端的Java应用程序需要完成的工作_____。
A. 与数据库的某个表建立连接
B. 与特定的数据库建立连接
C. 发送SQL语句,得到查询结果
D. 关闭与JDBC服务器的连接

一、
1. (数据库)地址
2. next
二、
BACCACB

  • 5
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值