首页 > 其他 > 详细

异常处理try...catch...finally中的finally关键字相关问题

时间:2019-06-24 17:45:17      阅读:111      评论:0      收藏:0      [点我收藏+]
1. 下面的代码 finally 会不会执行,如果会是在 return 之前还是之后?
public void Test(){
    int a = hello();
    System.out.println("a = " + a);
}

public int hello(){
    int a = 10;
    try{
        System.out.println("a = "+ a);
        return a++;
    } catch(Exception e){
        e.printStackTrace();
    } finally{
        System.out.println("a = " + a);
        a++;
        System.out.println("a = " + a);
    }
    return 5;
}

【答】:finally 语句块无论何时都会执行并且是在 return 之前执行

2. java 中的 final、finally 与 finalize()的区别

  • final 修饰的类不可继承,final 修饰的方法不能重写,final 修饰的变量是常量。
  • finally 是在处理异常时的一个关键字,一般 try 语句可以与 catch 连用,也可以与 finally连用,也可以三个一起连用。finally 代表无论何时(是否出现异常)其中的代码都会被执行到,一般用于关闭一些耗性能的资源,如数据库的连接。
  • finalize()是Object类的一个方法,是由protected修饰的,所以我们的子类可以重写finalize()方法。它的作用就是 java 在执行垃圾回收时对要回收的对象之前会主动调用此方法,所以,可以在此方法中定义一些回收或清理内存、资源的操作。

异常处理try...catch...finally中的finally关键字相关问题

原文:https://www.cnblogs.com/EaTerLeader/p/11078321.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!