首页IT科技try的finally(try…catch中finally子句的使用)

try的finally(try…catch中finally子句的使用)

时间2025-07-30 20:09:13分类IT科技浏览4387
导读:目录: finally的使用 finally面试题 final、finally、finalize的区别...

目录:

finally的使用 finally面试题 final               、finally                      、finalize的区别

finally子句的使用:

1       、在finally子句中的代码是最后且一定会执行的               ,即使try语句块中的代码出现异常

2               、finally子句必须和try一起出现                      ,不能单独编写

3                      、finally子句出现的情况如下:

通常finally语句块中完成资源的释放/关闭              。

  注意:return语句只要执行       ,所在方法必然结束!

try{ System.out.println("hi"); //退出JVM System.exit(0); }finally{ System.out.println("finally"); } //控制台输出:hi 原因:finally只有在退出JVM之后               ,其代码才不会执行

  finally面试题:

判断下面程序输出的结果为多少?

public static void main(String[] args){ int result = m(); System.out.println(result); } public static int m(){ int i = 100; try{ return i; }finally{ i++; } }

  答案:100

原因:

存在一些Java语法规则                      ,方法体中的代码必须遵循自上而下的顺序依次执行;return语句一旦执行       ,整个方法必须结束                      。

在以上程序中执行完int i=100之后        ,代码执行就到了return i;此时为return 100;此语句搁置                      ,先执行finally              ,最后执行return 100;

具体执行过程可以看代码反编译之后的结果

//上述代码反编译之后的结果 public static int m(){ int i=100; int j=i; i++;//finally语句确实在return i;之前执行 return j;//return 100 Exception exception; exception; i++; throw exception; }

final       、finally        、finalize的区别:

final是一个关键字        ,表示不变的                       ,最终的

final int i=100;

其中final修饰的类无法继承                      、修饰的方法无法覆盖              、修饰的变量不能重新赋值        。

finally也是一个关键字              ,和try联合使用,用在异常机制中                       ,并且finally语句块中的代码一定会执行

finalize()是object类中的一个方法                      ,作为方法名出现,属于标识符               ,这个方法是由垃圾回收器G负责调用的       。

声明:本站所有文章                      ,如无特殊说明或标注       ,均为本站原创发布                      。任何个人或组织               ,在未征得本站同意时                      ,禁止复制        、盗用                       、采集              、发布本站内容到任何网站、书籍等各类媒体平台               。如若本站内容侵犯了原著者的合法权益       ,可联系我们进行处理       。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
vue教学(我的VUE 学习之路(下)) 聚民网是什么,聚民网为民服务的网络平台叫什么(聚民网是什么,聚民网为民服务的网络平台)