1、不管有没有出现异常,finally块中代码都会执行,即所谓的finally块中是无论如何都会执行的代码
2、当try和catch中有return时,finally仍然会执行在return结果返回之前,但是此时try或者catch里面return后面的表达式已经执行完毕,结果存在栈中;
3、当try和catch中有return时:
若返回的是基本类型或者字符串类型,在finally里面对返回值重新赋值,不影响返回结果
若返回值类型是引用类型,此时要明白上述第二条中保存在栈中的结果是该引用类型变量的引用地址,地址不会改变,但是该地址的引用的对象内容可以被改变,即在finally中对返回值重新赋值,会影响到返回结果
4、finally中最好不要包含return,否则程序会提前退出,返回值不是try或catch中保存的返回值。