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. 运行时抛出异常.
代码分析:子类构造器中会自动的去调用父类中无参构造器。
原文:http://blog.csdn.net/bear_huangzhen/article/details/25618907