final和finally的区别

final和finally的区别

​ 二者在本质上就有一定的区别,final用于修饰类、方法和变量—–>有不可变的特性;

而finally则是用于异常处理机制,可以说除了看起来像,其余的根本不一样。

1.final关键字

  • 修饰类:不能被继承
  • 修饰方法:不能被重写
  • 修饰变量:只能被赋值一次,不能被重新赋值,其实就是个常量
  • 修饰引用类型,地址值不能变,引用可变
  • 修饰成员变量:要在构造方法完成前,进行初始化

2.finally

finally是try语句中的语句体,不能单独使用,用来释放资源,可以使用 try-finally 或者 try-catch-finally 来进行类似关闭 JDBC 连接、保证 unlock 锁等动作。

//下面的代码会被执行吗?
try {
  // do something
  System.exit(1);
} finally{
  System.out.println("Hello,I am finally。");
}

上面 finally 里面的代码是不会被执行的,因为 try-catch 异常退出了。

下面还有一些情况不会被执行:

// 死循环
try{
    while(ture){
        System.out.println("always run");
    }
}finally{
    System.out.println("ummm");
}

// 线程被杀死
当执行 try-finally 的线程被杀死时,finally 中的代码也无法执行。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值