final,finally和finalize区别,catch里面有return语句的执行顺序

/*
*   1:final,finally和finalize的区别
*       final:最终的意思,能够修饰类,成员变量,成员方法
*                  修饰类:类不能被继承
*                  修饰方法:方法不能被重写
*                  修饰变量:变量变常量
*      finally:是异常处理的一部分,用于释放资源
*           通常来讲,代码确定会执行,特殊状况:在执行到finally以前退出了
*      finalize:是Object类的一个方法,用于垃圾回收
*    2:若是catch里面有return语句,请问finally里面的代码还会执行吗?
*       若是会,请问是在return前,仍是return后
*           会,前;准确的说,应该是在中间
*
*    3:try...catch...finally的格式变形
*       A:try...catch...finally
*       B:try...catch
*       C:try...catch...catch...
*       D:try...catch...catch...finally
*       E:try...finally
*           这种作法的目的是为了释放资源
* */
public class FinallyDemo2 {
    public static void main(String[] args) {
        System.out.println(getInt());//30
    }

    public static int  getInt() {
        int a=10;
        try {
            System.out.println(a/0);
            a=20;
        }catch (ArithmeticException e){
            a=30;
            return a;
            /*
            * return a在程序执行到这一步的时候,这里不是return a而是return 30;这个返回路径就造成了
            * 可是呢,它发现后面还有finally,因此继续执行finally的内容,a=40;再次回到之前的返回路径,继续走return 30;
            * */
        }finally {
            a=40;
//            return a;//若是是这样结果就是40
        }
        return  a;
    }
}
相关文章
相关标签/搜索