先看下列代码
public class SmallT {
public static void main(String[] args) {
SmallT t = new SmallT();
int b = t.get();
System.out.println(b);
}
private int get() {
try {
return 1;
} finally {
return 2;
}
}
}
运行结果为:2
原因:
return并不是让函数马上返回,而是return语句执行后,将把返回结果放进函数栈中,此时函数并不是马上返回,它要执行finally语句后才真正开始返回。