一个关于执行顺序的问题

为什么输出的结果是先输出2然后输出1?假如先输出2,那么x的结果变为2了应该输出两个2?
public static void main(String[] args){
System.out.println(new Test().test());;
}
static int test()
{
int x = 1;
try
{
return x;
}
finally
{
++x;
System.out.println(x);
}

}   

http://java-mzd.iteye.com/blog/838683

先执行return后的表达式,再执行finally,然后再return。

http://blog.csdn.net/zollty/article/details/7884670

参考。