final和finally的区别
一. final关键字
final可以声明变量,形参,方法,类
1.当用final修饰变量时,该变量变为常量,常量的值不可改变.例如char[]arr={1,2,3,4,5},当定义一个数组时,数组默认被final修饰即不可改变,且final直接初始化赋值时用static修饰
二.finally关键字
finally是对java的一种异常处理机制,finally是对java异常处理模型的最佳补充
finaly{}结构的代码块使其中的代码在出现异常,虚拟机停止运行时仍会执行执行final代码块中的内容.
finally与catch执行顺序
1.当catch中没有return语句时,执行顺序为try-----catch-----finally
2.当catch中有return语句而finally没有return语句,执行try代码块------执行catch中return之前的代码------finally中的代码块------最后执行catch中的return
3.当catch和finally中都用return语句,时执行顺序为try-----catch-----finally,但最后finally中的return语句会覆盖catch中的return语句,返回的是finally中的return语句