lvxingang 2012-03-15 20:46 采纳率: 0%
浏览 119
已采纳

java 基础题, 但不简单. 反正我很费解. 很费解.为什么调两个差不多的方法打印的结果不同?

public class FinallyTest {
public static void main(String[] args) {
System.out.println(new FinallyTest().test());//这个打印结果为1.
System.out.println(new FinallyTest().get());// 这个打印结果为2.
}

//调这个就打印1
static int test() {
int x = 1;
try {
return x;
} finally {
++x;
}
}
//调这个就打印2
static public int get() {
try {
return 1;
} finally {
return 2;
}
}
}

  • 写回答

6条回答 默认 最新

  • 王启军 2012-03-15 21:37
    关注

    finnaly不影响返回结果的,在return 之前,return的值被储存在临时变量里,finally无论做如何操作都不影响返回的值,除非在finnaly又返回了另外的值

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?