第一题
- 下列程序运行结果是:
package Test;
public class Test {
private static void test(int[] arr) {
for (int i = 0; i < arr.length; i++) {
try {
if (arr[i] % 2 == 0) {
throw new NullPointerException();
} else {
System.out.print(i);
}
} finally {
System.out.print("e");
}
}
}
public static void main(String[]args) {
try {
test(new int[] {0, 1, 2, 3, 4, 5});
} catch (Exception e) {
System.out.print("E");
}
}
}
正确的答案: B
A.编译出错
B.eE
C.Ee
D.eE1eE3eE5
E.Ee1Ee3Ee5
这道题目主要是想考try catch finally的执行顺序,所以这道题目是很简单的,第一次循环就会有异常发生,之后进入finally代码块,然后跳出test方法,来到最后的打印输出语句。所以答案为: B
第二题
- 选择正确的答案
A.double d=5.3e12;
B.float f=11.1;
C.int i=0.0;
D.Double oD=3;
在java中,整型都是默认为int,小数都是double,所以在B中,double要变成float要强制转换,C中double变成int也是要强制转换。D中,int变成Double这个包装类,根本就做不到。所以答案为: A
第三题
- 下列程序的运行结果是()
public static void main(String[] args) {
Object o1 = true ? new Integer(1) : new Double(2.0);
Object o2;
if (true) {
o2 = new Integer(1);
} else {
o2 = new Double(2.0);
}
System.out.print(o1);
System.out.print(" ");
System.out.print(o2);
}
选项:
A. 1 1
B. 1.0 1.0
C. 1 1.0
D. 1.0 1
首先对于三目的运算符,在进行比较的通常都是要变成相同的类型,一般以大的为主,所以这里变成是Double类型,所以 o1就是Double实例对象了,输出的是小数的形式。而 o2是Integer实例对象,会进行拆箱操作,所以输出的形式是整数形式。答案为:D
第四题
- 下列关于final、finally、finalize说法正确的是( )
A.final可以用来修饰类、方法、变量
B.finally是java保证重点代码一定要被执行的一种机制
C.变量被final修饰后不能再指向其他对象,但可以重写
D.finalize设计的目的是保证对象在被垃圾收集前完成特定资源的回收
答案是ABD,选项C可以修饰变量,但是变量有类变量和基础数据变量,对于类变量而言,不能指向对象,但是里面的内容可以重写,但是对于基础数据,就是常量了不能重写。