本帖最后由 何明辉 于 2012-9-13 11:53 编辑
class Demo112
{
public static void main(String[] args)
{
System.out.println(get(4));
}
public static int get(int x)
{
try
{
return x;
}
finally
{
//return x=x+1;//---1
x=x+1;
}
}
}
上面运行的结果是4,如果是1处运行的则是5,不大好理解。张老师举了个容器的列子,搞不懂,因为x虽为变量但装的是值,改变了那就是改变了,求更好的解释?谢谢!。我倒是实验总结了一下:对于finally语句中如果有返回语句则以最后执行到的该语句为准,如果没有则以之前的为准,是不是跟return关键字本身有关,而不是x的事。
|