public class Test3 {
// yy
// bb
public String Test3() {
String str = "aa";
try {
str = "bb";
return str;
} finally {
str="yy";
System.out.println(str);
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Test3 t = new Test3();
System.out.println(t.Test3());
}
这段代码的执行顺序是什么样的,输出是什么?Why

------解决思路----------------------
方法中依次执行,到return时由于有finally必须先执行,
所以return值被暂存,也就是bb被暂存
yy先被输出
然后bb返回被main里面输出
------解决思路----------------------
finally是必须执行的,而且是在return真正退出方法之前执行,也就是说先输出yy,然后再讲bb返回,打印
------解决思路----------------------
finally在return前执行,return 的值在执行finally前被存入栈中,所以在finally中改变对象后,不影响return的结果
我这样理解对不对?