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{} 不会被执行。就是程序终止的时候,比如:

 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";
System.exit(0); // 程序被终止了,下面的代码全部不会执行
} finally
{
output += "3";
}
output += "4";
} public static void main(String args[])
{
foo(0); // i = 134
System.out.println(output);
foo(1); // i = 134234
System.out.println(output);
}
}

所以,正确答案为 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)的更多相关文章

  1. SCJP_104——题目分析(5)

    18. public class Test { public static void add3(Integer i) { int val=i.intvalue(); val+=3; i=new Int ...

  2. SCJP_104——题目分析(1)

    1.1) public class ReturnIt{2) returnType methodA(byte x, double y){3) return (short)x/y*2;4) }5) }wh ...

  3. SCJP_104——题目分析(4)

    14. which three are valid declaraction of a float? ADFA. float foo=-1; B. float foo=1.0; C. float fo ...

  4. SCJP_104——题目分析(3)

    11. what is reserved words in java?A. run B. default C. implement D. import Java 中,给标识符取名的时候,不能使用关键字 ...

  5. SCTF 2014 pwn题目分析

    因为最近要去做ctf比赛的这一块所以就针对性的分析一下近些年的各大比赛的PWN题目.主防项目目前先搁置起来了,等比赛打完再去搞吧. 这次分析的是去年的SCTF的赛题,是我的学长们出的题,个人感觉还是很 ...

  6. 路由器漏洞复现分析第三弹:DVRF INTRO题目分析

    这个项目的目的是来帮助人们学习X86_64之外其他架构环境,同时还帮助人们探索路由器固件里面的奥秘. 本文通过练习DVRF 中INTRO 部分的题目来学习下MIPS 结构下的各种内存攻击. DVRF: ...

  7. 二分查找总结及部分Lintcode题目分析 2

    Search in a big sorted array,这个比之前的二分法模板多了一个很不同的特性,就是无法知道一个重要的条件end值,也是题目中强调的重点 The array is so big ...

  8. 【算法】题目分析:Aggressive Cow (POJ 2456)

    题目信息 作者:不详 链接:http://poj.org/problem?id=2456 来源:PKU JudgeOnline Aggressive cows[1] Time Limit: 1000M ...

  9. *CTF babyarm内核题目分析

    本文从漏洞分析.ARM64架构漏洞利用方式来讨论如何构造提权PoC达到读取root权限的文件.此题是一个ARM64架构的Linux 5.17.2 版本内核提权题目,目的是读取root用户的flag文件 ...

随机推荐

  1. RAM——[HAOI2007]理想的正方形

    题目:[HAOI2007]理想的正方形 描述: [问题描述] 有一个a*b的整数组成的矩阵,现请你从中找出一个n*n的正方形区域,使得该区域所有数中的最大值和最小值的差最小. [输入]: 第一行为3个 ...

  2. kickstrt脚本for cobbler基于system-config-kickstart配置

    1,由于是基于图形界面来生成ks自动安装脚本,所有图形生成ks脚本的服务器首先需要的就是有X Window System; 要是虚机的可以配个tigervnc-servere来进行操作 不说了直接上命 ...

  3. D - How Many Answers Are Wrong(hdu 3038)

    总算碰到一道不那么无聊的题了^^ 先说一下题意吧,有两个人一个叫TT的男孩一个叫FF的女孩(名字太随意了吧....),这个叫TT的男孩会经常叫这个女孩一起玩一个游戏,这个有些是这样的,随便写一个数列, ...

  4. 10个经典的Java面试题

    这里有10个经典的Java面试题,也为大家列出了答案.这是Java开发人员面试经常容易遇到的问题,相信你了解和掌握之后一定会有所提高.让我们一起来看看吧. 1.Java的HashMap是如何工作的? ...

  5. Android数据存储(1)少量数据保存之SharedPreferences接口实例

    SharedPreferences数据保存主要是通过键值的方式存储在xml文件中 xml文件在data/此程序的包名/XX.xml 格式 <?xml version='1.0' encoding ...

  6. linux两台server远程copy文件

    1.将远程机器的文件copy到本地 scp -r  root@10.10.15.25:/bea   /gg   将远程的/bea copy到/gg以下 -r  Recursively copy ent ...

  7. gcc -I -L -l区别

    我们用gcc编译程序时,可能会用到“-I”(大写i),“-L”(大写l),“-l”(小写l)等参数,下面做个记录: 例: gcc -o hello hello.c -I /home/hello/inc ...

  8. iOS仿喜马拉雅FM做的毕业设计及总结(含新手福利源码)

    其实仿喜马拉雅FM很早就开始了,从我刚接触iOS开始,就开始仿做了一部分,眼尖的人都从我的github找到了那个项目.随着找到实习iOS工作,仿写就落下了,但唯一的收获就是给过去打了一个响亮的耳光,因 ...

  9. Android系统移植与驱动开发--第三章 Git使用入门及在学习中有感

    第三章 Git使用入门 使用Git的目的是减少各种版本的Linux的压缩大小,提供源代码在Linux上进行编译. 在这一个章节中,其实就是关键步骤的操作,虽然Git与我们学习的android没有很大的 ...

  10. Proxy 代理模式

    简介 代理模式是用一个简单的对象来代替一个复杂的或者创建耗时的对象. java.lang.reflect.Proxy RMI 代理模式是对象的结构模式.代理模式给某一个对象提供一个代理对象,并由代理对 ...