重要:首先要知道,只要finally中存在return语句,那么方法的返回值就是finally语句块中return语句返回的值,因为方法只需要一个返回值,而且finally是一定会执行且最后执行的,那么返回值就是finally中return的值。
一、当try、cath中返回的变量是“基本数据类型”时
这时在try、catch中的return语句中保存的是变量的副本,在finally中对变量的值做修改不会影响副本的值,在finaly块中没有return语句时,try、catch中的返回值就是它们自己保存的副本的值。
二、当try、cath中返回的变量是“引用数据类型”时
这时在try、catch中的return语句中保存的是变量的地址,在finally中对变量的值做修改其实就是在修改同一个对象,在finaly块中没有return语句时,try、catch中的返回值就是在finanlly块中修改过后的值。