final和finally的区别

finally,它只能用在try/catch语句中,并且附带着一个语句块,表示这段语句最终总是被执行。
即使在try语句中有return等结束方法或循环的代码被执行后,finally中的内容仍然会被执行

public class Test2{
   public static  void main(String[] args){
         try{
            System.out.println("return之前!");
            return;
            System.out.println("return之后!");
            }catch(Exception e){
                System.out.println("程序抛出了异常");  
            }finally{
                System.out.println("finally被执行了!");  
            }
  		  }
}

运行结果:

return之前!

finally被执行了!

从结果上我们看到finally中的代码被执行,即使程序被return中断,这是因为return的返回并没有彻底返回,而是在finally中的语句执行完后,彻底返回,结束

final:是修饰符(关键字)有三种用法:
第一种:类被声明为final,意味着它不能再派生出新的子类,即不能被继承,因此它和abstract是反义词;
第二种:将变量声明为final,可以保证它们在使用中不被改变;被声明为final的变量必须在声明是给定初始值,而在以后的引用中只能读取不能修改。
第三种:被声明为final的方法不能在子类中被重写。

finally:通常放在try…catch…的后面,finally块中的代码一定能执行,这就意味着程序无论正常执行还是发生异常,这里的代码只要JVM不关闭都能执行,可以将释放外部资源的代码写在finally块中

添加:
finalize:Object类中定义的方法,Java中允许使用finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在销毁对象时调用的,通过重写finalize()方法可以整理系统资源或者执行其他清理工作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值