1. 下面的代码运行后,将输出什么结果?
String s1 = new String("Test");
String s2 = new String("Test");
if (s1 == s2)
System.out.println("Same");
if (s1.equals(s2))
System.out.println("Equals");
A. Same Equals B.Same C. Equals D. 编译错误
代码分析:==是比较引用s1和s2本身的值,equals()方法是比较s1和s2所关联的String对象的内容
2. 如下代码 :
int i =3;
System.out.print((i++)+(++i)-((++i)*(++i)));
执行的结果是
A.-33 B.-34 C.-35 D.-36
代码分析:
//************等同于如下代码*******************
i = 3;
int a = i++;
//此时a=3, i=4
int b = ++i;
//此时b=5, i=5
int c = ++i;
//此时c=6, i=6;
int d = ++i;
//此时d=7, i=7
int m = a + b - (c * d);
//m = 3 + 5 - (6 * 7);
System.out.println(m);
//****************************************
3. 如下代码:
public static void main(String args[]) {
System.out.println("value = " + switchIt(4));
}
public static int switchIt(int x) {
int j = 1;
switch (x) {
case 1:
j++;
case 2:
j++;
case 3:
j++;
case 4:
j++;
case 5:
j++;
default:
j++;
}
return j + x;
}
输出结果是什么?
A. value = 3 B. value = 4 C. value = 5 D. value = 6 E. value = 7 F. value = 8
代码分析:由于case 4后面没有写break语句,所以j++会执行3次,最后j=4,所以value=8
4.如下代码:
public void test(int x) {
int odd = x % 2;
if (odd) {
System.out.println("odd");
} else {
System.out.print("even");
}
}
A. 编译失败. B. "odd" 永远被输出. C. "even" 永远被输出 D. "odd" 输出x的值, E. "even" 输出x的值
代码分析:if的条件是一个boolean类型的值,所以这个地方写int类型的值会报错
5.下面程序输出结果
public static void main(String[] args) {
try {
badMethod();
System.out.print("A");
} catch (Exception ex) {
System.out.print("C");
} finally {
System.out.print("B");
}
System.out.print("D");
}
public static void badMethod() throws Exception {
throw new Exception();
}
A.ABCD B. 编译失败. C. 显示C,退出程序. D. 显示B,C,退出程序. E. 显示CBD,退出程序.
代码分析:try块当中,发生异常的语句之后的代码不会执行,发生异常后,代码会执行到catch块中,finally块中的代码无论什么情况都会执行。
6.下面代码 :
public class Test6 extends Base {
public static void main(String[] args) {
new Test6();
new Base();
}
}
class Base {
Base() {
System.out.print("Base");
}
}
结果是什么?
A. Base B. BaseBase C. 编译失败. D. 代码运行但没有输出. E. 运行时抛出异常.
代码分析:子类构造器中会自动的去调用父类中无参构造器。