finally语句块与return的执行关系.docVIP

  • 1
  • 0
  • 约3.17千字
  • 约 5页
  • 2018-05-24 发布于河南
  • 举报
finally语句块与return的执行关系

这是一道Java面试题:try?{ }里有一个return语句,那么紧跟在这个try后的finally?{}里的code会不会被执行,什么时候被执行,在return前还是后?(如果try后面有个catch块,里面有return语句,那么finally语句会不会执行?) 根据java规范:在try-catch-finally中,如果try-finally或者catch-finally中都有return,则两个return语句都执行并且最终返回到调用者那里的是finally中return的值;而如果finally中没有return,则理所当然的返回的是try或者catch中return的值,但是finally中的代码是必须要执行的,方法在return的时候并不是把它所拥有的那个值给返回了,而是复制一份返回!因此,对于基本类型的数据,在finally中改变return的值对返回值没有任何影响,而对于引用类型的数据,就有影响。(JAVA中基本类型变量存储在___中,引用类型的对象存储在____中,对象的引用地址存储在____中。 A. 堆 B. 栈 C. 寄存器 D. 静态存储区 BBA 基本类型和对象的引用都放在栈中,new出的对象和数组放在堆中 public class FinallyTest { public static void main(String[] ar

文档评论(0)

1亿VIP精品文档

相关文档