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条)

报告相同问题?

悬赏问题

  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化