黑马程序员技术交流社区
标题:
第一个输出看懂了,第二个看不懂呢!
[打印本页]
作者:
zhiyuan0932
时间:
2014-9-19 10:54
标题:
第一个输出看懂了,第二个看不懂呢!
写出程序结果写出程序结果 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";
return;
}
finally
{
output+="3";
}
output+="4";
}
public static void main(String args[])
{
foo(0);
System.out.println(output);//134
foo(1);
System.out.println(output); //13423
}
}
作者:
何艳梅
时间:
2014-9-19 14:50
这题目不错,第二个是因为output是静态的,所以执行foo(1)前,output为134,finally在catch语句return前执行,所以后面+23,整体输出13423.
作者:
范鹏霄
时间:
2014-9-19 20:10
这题有趣
作者:
Huberry
时间:
2014-9-20 02:20
output是成员变量,第二次调用foo时没有重新初始化,所以第一次运行的结果还存在里面
作者:
爽朗的菜籽
时间:
2014-9-20 08:01
学习了 谢谢大大解释 还以为第二次是 23 呢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2