写在左上角的:十题一集合,温故以知新
牛客 · 错题集锦 (一)
1、在Struts框架中如果要使用Validation作验证的话,需要使用以下那个Form?
A、ActionForm
B、ValidatorActionForm
C、ValidatorForm
D、DynaCalidatorActionForm
2、HttpSession session = request.getSession(false)与HttpSession session = request.getSession(true)的区别?
A、没有区别
B、如果当前request中的HttpSession为null,当传入参数为空时,就创建一个新的Session,否则返回null
C、如果当前request中的HttpSeesion为null,当传入参数为true时,就创建一个新的Session,否则返回null
3、下列不属于java语言鲁棒性特点的是
A、java 能检查程序在编译和运行时的错误
B、java 能运行虚拟机实现跨平台
C、java 自己操纵内存减少了内存出错的可能性
D、java 还实现了真数组、避免了覆盖数据的可能
4、下面不属于Object类中方法的是
A、hashCode()
B、finally()
C、wait()
D、toString()
5、下面有关java final 的基本规则,描述错误的是?
A、final 修饰的类不能被继承
B、final 修饰的成员变量只允许赋值一次,且只能在类方法赋值(解析一下:该答案前半句对,后半句不对)
C、final 修饰的局部变量即为常量,只能赋值一次
D、final 修饰的方法不允许被子类覆盖
6、下列哪项不属于jdk 1.6 垃圾收集器?
A、Serail 收集器
B、parNew 收集器
C、 CMS 收集器
D、G1 收集器(解析一下:G1 收集器 于jdk1.7 u4 正式使用)
7、考虑下面这个简单的栗子,让我们看看reflection是如何工作的。
import java.lang.reflect.*;
public class DumpMethods{
public static void main(String[] args){
try{
Class c = Class.forName(args[0]);
Method m[] = c.getDeclaredMethods();
for(int i = 0; i < m.length; i ++){
System.out.println(m[i].toString);
}
} catch (Throwable e){
System.err.println(e);
}
}
}
其中“c.getDeclaredMethods”的作用是:
A、取得类的公有方法名称
B、取得类的所有公有方法名称
C、取得类的所有方法对象(解析一下:getDeclaredMethods():返回类的所有方法;getMethods():返回类的所有public方法)
D、以上选项都不正确
8、避免死锁的一个著名的算法是
A、先入先出算法
B、银行家算法
C、优秀奖算法
D、资源按序分配法
9、下列关于 轮询任务调度 和 可抢占式调度 区别 描述错误 的是?
A、抢占式调度优点是其简洁性,它无需记录当前所有连接的状态
B、抢占式调度不利于后面的请求及时得到响应
C、抢占式调度有利于后面的高优先级的任务也能即使得到响应
D、抢占式调度实现相对较复杂且可能实现低优先级的任务长期得不到调度
(解析一下:
1> 轮询调度:每一次把来自用户的请求轮流分配给内部中的服务器,从1开始,直到N(内部服务器个数),然后重新开始循环。只有在当前任务主动放弃CPU控制权的情况下(比如任务挂起),才允许其他任务(包括高优先级的任务)控制iCPU。其有点是其简洁性,它无需记录当前所有连接的状态,所以它是一种无状态调度。但不利于后面的请求及时得到响应。
2> 抢占式调度:允许高优先级的任务打断当前执行的任务,抢占CPU的控制权。这有利于后面的高优先级的任务也能及时得到响应。但实现相对较复杂且可能出现第优先级的任务长期得不到调度。
)
10、两个等价线程并发的执行下列程序,a为全局变量,初始为0,假设printf、++、--操作都是原子性的,则输出不可能是
void foo(){
if(a <= 0){
a ++;
} else {
a --;
}
printf("%d",a);
}
A、0 1
B、1 0
C、1 2
D、2 2