Day9刷题总结
选择题
- 一个以”.java”为后缀的源文件(C)
A.只能包含一个类,类名必须与文件名相同
B.只能包含与文件名相同的类以及其中的内部类
C.只能有一个与文件名相同的类,可以包含其他类
D.可以包含任意类 - java中,用(A )关键字定义常量?
A.final
B.#define
C.float
D.const - 以下关于集合类 ArrayList 、 LinkedList 、 HashMap 描述错误的是:©
A.HashMap实现Map接口,它允许任何类型的键和值对象,并允许将null用作键或值
B.ArrayList和LinkedList均实现了List接口
C.添加和删除元素时,ArrayList的表现更佳
D.ArrayList的访问速度比LinkedList快
解析:
1>Hashtable不允许 null 值(key 和 value 都不可以),HashMap允许 null 值(key和value都可以)。 ArrayList和LinkedList均实现了List接口
2>ArrayList基于数组实现,随机访问更快
3>LinkedList基于链表实现,添加和删除更快 - 以下说法错误的是(C)
A.数组是一个对象
B.数组不是一种原生类
C.数组的大小可以任意改变
D.在Java中,数组存储在堆中连续内存空间里 - 对于abstract声明的类,下面说法正确的是(E)
A.可以实例化
B.不可以被继承
C.子类为abstract
D.只能被继承
E.可以被抽象类继承
解析:
A,抽象类不能实例化,因为有抽象方法未实现
B,可以被继承。派生类可以实现抽象方法
C,子类可以是抽象的,也可以非抽象的
D,只能被继承说法太肯定,不正确
E,可以被抽象类继承,也可以被非抽象类继承 - 下列不属于算法结构的是(C)
A.输入数据
B.处理数据
C.存储数据
D.输出结果
解析:
算法包括0个或多个输入,1个或多个输出,中间有穷个处理过程。
存储结构不属于算法结构 - 下列关于计算机系统和Java编程语言的说法,正确的是(C)
A.计算机是由硬件、操作系统和软件组成,操作系统是缺一不可的组成部分。
B.Java语言编写的程序源代码可以不需要编译直接在硬件上运行。
C.在程序中书写注释不会影响程序的执行,可以在必要的地方多写一些注释。
D.Java的集成开发环境(IDE),如Eclipse,是开发Java语言必需的软件工具。 - 下面程序的输出结果是?(D)
package algorithms.com.guan.javajicu;
public class TestDemo {
public static String output ="";
public static void foo(int i){
try{
if(i == 1){
throw new Exception();
}
}catch(Exception e){
output += "2";
return ;
}finally{
output += "3";
}
output += "4";
}
public static void main(String[] args) {
foo(0);
foo(1);
System.out.println(output);
}
}
A.出错
B.342
C.34234
D.3423
解析:
void函数可以return空值,所以代码没错
第一次try没执行,所以没有异常抛出,程序继续,finally必须执行,try外部代码执行,output=“34”
第二次try执行,抛出异常,程序中断,执行catch,最后执行finally,程序结束,所以output=3423“
- 下列关于Java并发的说法中正确的是(B)
A.CopyOnWriteArrayList适用于写多读少的并发场景
B.ReadWriteLock适用于读多写少的并发场景
C.ConcurrentHashMap的写操作不需要加锁,读操作需要加锁
D. 只要在定义int类型的成员变量i的时候加上volatile关键字,那么多线程并发执行i++这样的操作的时候就是线程安全的了
解析:
A,CopyOnWriteArrayList适用于写少读多的并发场景
B,ReadWriteLock即为读写锁,他要求写与写之间互斥,读与写之间互斥,
读与读之间可以并发执行。在读多写少的情况下可以提高效率
C,ConcurrentHashMap是同步的HashMap,读写都加锁
D,volatile只保证多线程操作的可见性,不保证原子性 - ServletConfig接口默认是哪里实现的?(B)
A. Servlet
B.GenericServlet
C.HttpServlet
D. 用户自定义servlet
解析