A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

面试题---如果catch里面由return语句,请问finally的代码快还会执行吗?如果会,请问是在return前还是return后。


答:finally语句从名字看,不管哪里绝笔一定要执行~~~~~return语句在将返回值装入放回的箱子里的后,再看下finally有没有在,在的话执行,然后返回。finally的语句不会对return的语句已准备好的返回值有任何影响。----->简单的总结来说就是(finally语句是在try的return语句执行之后,return返回之前执行。)很重要啊,晕菜了吗你晕菜了吗~~~~~~




16 个回复

倒序浏览
其实不难理解
回复 使用道具 举报
但是我能告诉你真实情况吗?我当时答得是  后面放必须要执行的代码,一般放释放资源的代码,  然后面试老师说我说错了!!!!    也不跟我说正确答案是什么,他前面问我   如何让finally 后面的语句不执行,本来这东西就不是需要掌握的东西,我给面试老师说,关闭jvm,然后他问我怎么关闭jvm,这我哪里知道?别的面试老师都是拿着单子问,都是我们学的内容,他问的问题有很多都是老师视频里面偶尔提了一下子的那种,   是,我没掌握那么多,我承认我没学好,但是别的同学比我基础差的都能上  我怎么就不能上了?  一个老师卡着一下午  凡是他面试的一个都没过.就前面那个finally后面放什么东西这个问题,我还和点招的主管讨论了一下,主管跟我说的是你看的笔记错了,我从地质转行过来的,学的东西都是你们给的,你们说错就错了?就算错了那也是你们教的就是错的啊,当然,我没有当面揭穿,或许他不懂吧.别的不想多说那么多了,以上句句属实.
回复 使用道具 举报
不明觉厉,你学了多久啦
回复 使用道具 举报
喝咖啡的玉米 发表于 2016-9-24 22:10
不明觉厉,你学了多久啦

好久了,一个月了。我被楼上的同学的冲天怨气所惊到了。
回复 使用道具 举报
喝咖啡的玉米 发表于 2016-9-24 22:10
不明觉厉,你学了多久啦

肯定很吊~?。
回复 使用道具 举报
喝咖啡的玉米 发表于 2016-9-24 22:10
不明觉厉,你学了多久啦

肯定很吊~~~~
回复 使用道具 举报

也是大神!!!
回复 使用道具 举报
pdog 初级黑马 2016-9-24 22:57:58
9#
我是这样理解的,
把return的功能分成两部分来看,
一是“将值返回” (包括void)
二是结束方法。

而finally关键字在二者之中执行
回复 使用道具 举报
pdog 发表于 2016-9-24 22:57
我是这样理解的,
把return的功能分成两部分来看,
一是“将值返回” (包括void)

瓦萨,你说的得更好理解哎~~~~
回复 使用道具 举报
pdog 初级黑马 2016-9-24 23:11:04
11#
kansyoukyou 发表于 2016-9-24 23:02
瓦萨,你说的得更好理解哎~~~~

资料上也有说,留意一下吧
回复 使用道具 举报
语句执行到try中会执行语句赋值,遇到return会存储一个临时值,然后不管后面有任何操作都不会对这个数产生影响,我们老师这么讲的
回复 使用道具 举报
会执行啊,
int i=1;
try{语句,return i ;
}catch(XXXXXX){
XXX
}finally{
i=10}
return i;

finally肯定会执行;
如果try里面的语句有异常的话,return i 就不会执行.先执行Finnal中的i=10;然后然后再执行return i;将10返回.,
如果try里面的语句没有异常的话,return i;就会执行,但是是先于finally执行,所有finally里的i=10;虽然执行了,但是返回的还时i=1时候的值..
回复 使用道具 举报
liuhongbo 来自手机 中级黑马 2016-9-24 23:53:59
14#
喝咖啡的玉米 发表于 2016-9-24 22:10
不明觉厉,你学了多久啦

不懂啊,晕的要死
回复 使用道具 举报
其实很简单,其实并不难
回复 使用道具 举报
被冷气冻伤 发表于 2016-9-25 00:10
其实很简单,其实并不难

两个人的爱由两人分担
回复 使用道具 举报
会执行,在return后执行.再finally执行后再返回
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马