这么这个问题这么多人讨论。
我还是坚持我的理解。
就算在try里面遇到了return,那程序会先看有没有finally语句,如果有,就先执行了finally,再回到try。
下面这个代码也很明白。try遇到了return ,这个时候a=true,然后程序一看有finally,执行了finally,现在a=false,这个时候回到try,直接return a 出去,而这个时候a=false.
public static void main(String[] args)
{
System.out.println(test1());
}
public static boolean test1()
{
boolean a = true;
try {
return a;
} finally
{
a = false;
System.out.println("进来finally了");
return a;
}
} |