关于Java finally的面试题
2023-07-06
有如下代码:
try
代码1
return 1;
finally
代码2
return 2;
问,代码2是否会被执行?若会被执行,是try里的return语句先执行还是finally里的代码先执行?最后该代码片段的返回值是1还是2?
答:代码2会被执行,因为finally里的代码总会被执行。
finally里的代码会在return 1;之后被执行。
既然finally里的代码会在return 1;之后被执行,所以return 2;覆盖return 1;返回2。