在Java中,finally语句块中的代码会在try或catch语句块中的代码执行完毕后执行,无论是否发生异常或者是否有return语句。如果try或catch语句块中有return语句,那么finally语句块中的代码会在返回之前执行。
具体来说,当try语句块中没有发生异常时,程序会按照正常的顺序执行,执行完try语句块中的代码后,会执行finally语句块中的代码,最后返回结果。
当try语句块中发生异常时,会根据异常类型执行catch语句块中的代码。执行完catch语句块中的代码后,会执行finally语句块中的代码,最后将异常抛出。如果catch语句块中有return语句,那么在执行完finally语句块中的代码后,返回的结果是catch语句块中的return语句的结果,而不是try语句块中的结果。
总之,finally语句块中的代码是在try或catch语句块中的代码执行完毕后执行,无论是否发生异常或者是否有return语句。
finally块的语句在try或catch中的return语句执行之后返回之前执行 且finally里的修改语句可能影响也可能不影响try或catch中 return已经确定的返回值, 若finally里也有return语句则覆盖try或catch中的return语句直接返回。