3.
public class IfTest{
public static void main(String args[]){
int x=3;
int y=1;
if(x=y)
System.out.println("Not equal");
else
System.out.println("Equal");
}
}
what is the result?
这一题考察的是 if 语句。if
语句的写法如下:
if (boolean expression)
{
statement;
...
}
所以,括号中必须是一个布尔值,或者是能得到布尔值的表达式。
同时,这一题还考察了 = 与 ==
区别。
= :这是赋值符号,比如
int x = 0;
这句话定义了一个 int 类型的变量,命名为 x,同时赋值为 0。
== :这是比较符号,用来比较符号两边的表达式,结果返回一个
boolean 值,比如
1 == 2;
这句话返回 false。
所以正确答案为 compile
error(编译错误)
4.
public class Foo{
public static void main(String args[]){
try{
return;
}
finally{
System.out.println("Finally");
}
}
}
what is the result?
A. print out nothing
B. print out "Finally"
C.
compile error
这一题目考察的是 try—catch—finally 的用法。
try{}
负责抛出异常,catch(){}
负责捕捉异常。而 finally{}
代码块,不管有没有抛出异常,总是会被执行到。
注意:只有一种情况,fanally{}
不会被执行。就是程序终止的时候,比如:
1 public class Test
2 {
3 public static String output = "";
4
5 public static void foo(int i)
6 {
7 try
8 {
9 if (i == 1)
10 {
11 throw new Exception();
12 }
13 output += "1";
14 } catch (Exception e)
15 {
16 output += "2";
17 System.exit(0); // 程序被终止了,下面的代码全部不会执行
18 } finally
19 {
20 output += "3";
21 }
22 output += "4";
23 }
24
25 public static void main(String args[])
26 {
27 foo(0); // i = 134
28 System.out.println(output);
29 foo(1); // i = 134234
30 System.out.println(output);
31 }
32 }
所以,正确答案为 B
public class Test
{
public static String output = "";public static void foo(int i)
{
try
{
if (i == 1)
{
throw new Exception();
}
output += "1";
} catch (Exception e)
{
output += "2";
} finally
{
output += "3";
}
output += "4";
}public static void main(String args[])
{
foo(0);
foo(1);// (24)
}
}
what is the value of output at line 24?
这里也是考察 try-catch-finally。
在这里,catch(){} 代码块中有一个 return 语句。说明了 return 语句后面的代码不会被执行到。
但是,这里有一个 finally{} 代码块,所以,在执行 return 语句之前会先执行 finally{} 代码块,之后才会执行
return 语句。
所以程序执行到
foo(0);
时,output = "134",程序执行到
foo(1);
时,output = "13423"
所以,答案为
"13423"
SCJP_104——题目分析(2),码迷,mamicode.com