欢迎来到天天文库
浏览记录
ID:24326335
大小:52.50 KB
页数:4页
时间:2018-11-13
《finally语句块的作用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、★finally语句块的作用finally语句块与return的执行关系这是一道Java面试题:try{}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前还是后?(如果try后面有个catch块,里面有return语句,那么finally语句会不会执行?)finally语句块的作用就是为了保证无论出现什么情况,一定要执行的,那么finally里的code肯定会执行,并且是在return前执行。(只要语句执行了,肯定是在return前执行的。finally中也
2、可以有return,并且会覆盖其他的return)根据java规范:在try-catch-finally中,如果try-finally或者catch-finally中都有return,则两个return语句都执行并且最终返回到调用者那里的是finally中return的值;而如果finally中没有return,则理所当然的返回的是try或者catch中return的值,但是finally中的代码是必须要执行的,方法在return的时候并不是把它所拥有的那个值给返回了,而是复制一份返回!因此,对于基本类型的数据,在finally中改变
3、return的值对返回值没有任何影响,而对于引用类型的数据,就有影响。(JAVA中基本类型变量存储在___中,引用类型的对象存储在____中,对象的引用地址存储在____中。A.堆B.栈C.寄存器D.静态存储区BBA基本类型和对象的引用都放在栈中,ne.out.println(x的值当前值是+x);//x++;returnx;{publicstaticvoidmain(String[]args){System.out.println(x的值是+ne.out.println(x的值当前值是+x);returnx;//x++;return
4、x;{publicstaticvoidmain(String[]args){System.out.println(x的值是+neain(String[]args){System.out.print(k的最终返回值是:+tt());}publicstaticStringBuffertt(){StringBufferk=neobject)和“持久化对象”(persistentobject)。特例:基本类型(primitivetype)不用ne.exit(0)表示关闭虚拟机,即使是finally语句块也不会执行篇二:关于Java中final
5、ly语句块的深度辨析问题分析首先来问大家一个问题:finally语句块一定会执行吗?很多人都认为finally语句块是肯定要执行的,其中也包括一些很有经验的Java程序员。可惜并不像大多人所认为的那样,对于这个问题,答案当然是否定的,我们先来看下面这个例子。清单1.1publicclassTest{2publicstaticvoidmain(String[]args){3System.out.println(returnvalueoftest():+test());4}56publicstaticinttest(){7inti=1;8
6、//if(i==1)9//return0;10System.out.println(thepreviousstatementoftryblock);11i=i/0;1213try{14System.out.println(tryblock);1516returni;17}finally{18System.out.println(finallyblock);19}20}2122}23清单1的执行结果如下:另外,如果去掉上例中被
此文档下载收益归作者所有