首页
学习
活动
专区
工具
TVP
发布

finally与return-JAVA成长之路

finally关键字:和try块使用,一般做资源释放操作,比如关闭流、关闭数据库连接,释放锁。

return:用于返回值。

finally块可保证一定执行,当逻辑处理有返回值时,会首先执行finally再执行return返回值。看这个规律我们可以推断如下代码的执行顺序为:

test1

finally

1publicstaticinttest1(){

2inti = 0;

3try{

4System.out.println("test1");//1

5returni;

6}finally{

7System.out.println("finally");//2

8}

9}

再看如下代码执行顺序是怎样的

1  publicstaticinttest1(){

2inti = 0;

3try{

4System.out.println("test1");//1

5}finally{

6System.out.println("finally");//2

7}

8System.out.println("finally behind");//3

9returni;

10}

经过测试结果为 test1、 finally、 finally behind .

在测试该段代码之前根据我之前了解的判断执行顺序应该是132,这是错误的。所以我们需要注意这种写法的执行顺序。正确的结果是123。这一点在使用同步代码的时候一定要注意 。主要在finally中使用lock.unlock方法时,return要写在try中,避免return前已经释放锁,将数据暴露给了其它任务。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200709A0GSFD00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券