public class TryCatchReturn { /**
* @param args add by zxx ,Dec 9, 2008
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(new TryCatchReturn().test());;
}
static int test()
{
int x = 1;
try
{
return x;
}
finally
{
++x;
}
}
}
这个程序的运行结果是1,是不是程序是在try里已经保存了x,然后运行finally,但是最后依然按原来保存的1返回public class TryCatchReturn3 { /**
* @param args add by zxx ,Dec 9, 2008
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(new TryCatchReturn3().test());;
} int test()
{
try
{
return func1();
}
finally
{
return func2();
}
}
int func1()
{
System.out.println("func1");
return 1;
}
int func2()
{
System.out.println("func2");
return 2;
}
}
而这个程序的运行结果是
func1
func2
2
最后是2而不是1,这是为什么?
* @param args add by zxx ,Dec 9, 2008
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(new TryCatchReturn().test());;
}
static int test()
{
int x = 1;
try
{
return x;
}
finally
{
++x;
}
}
}
这个程序的运行结果是1,是不是程序是在try里已经保存了x,然后运行finally,但是最后依然按原来保存的1返回public class TryCatchReturn3 { /**
* @param args add by zxx ,Dec 9, 2008
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(new TryCatchReturn3().test());;
} int test()
{
try
{
return func1();
}
finally
{
return func2();
}
}
int func1()
{
System.out.println("func1");
return 1;
}
int func2()
{
System.out.println("func2");
return 2;
}
}
而这个程序的运行结果是
func1
func2
2
最后是2而不是1,这是为什么?
解决方案 »
- 想自己搞个社交网站,请教一些关于建站的问题
- 急,SQL题目
- 构造函数,不懂
- Unable to instantiate Action, personAction
- 这空指针异常太郁闷了。。。。。求大神解救我。。。。
- Java 进程特别耗Server的CPU怎么办?
- jbuilder8+struts 配置问题!
- 我装CVS后,在客户端运行,为什么总显示,"no sunch repository err"
- 一个接口两套实现,如何动态切换?有没有可以套用的设计模式
- 【求助】没分了… 求哥哥们再帮我回答这面试前的最后一些问题…
- 在后台怎么实现公交线路修改
- 非得要用Myeclipse+Tomcat吗 用eclipse怎么配置
javap -c TryCatchReturn 一目了然,毋庸多言