为什么要写final和finally的区别,首先大家会误以为final其实就是finally的修饰符,其实并不是这样的。其实final和finally是有很大的区别的,区别在于哪里呢?final和finally无论是方法,变量,常量,修饰符,关键字,这些之间都是有一点不同的。例如下面所解析到。
Final 关键字:

  1. final是一个修饰符,可以修饰类,方法,变量
  2. final修饰的类不可以被继承
  3. final修饰的方法不可以被覆盖
  4. final修饰的变量是一个常量,只能赋值一次。

为什么我们要用final修饰变量?其实在程序中如果一个数据是固定的,那么直接使用这个数据就可以了,但是这样阅读性差,所以它该数据起个名称。而且这个变量名称的值不能改变,所以加上final固定。并且写法要规范:常量所有字母都大写,多个单词中间用_连接。
Finally关键字:
Finally关键字用来创建在try代码块后面执行的代码块。
无论是否发生异常,finally代码块中的代码总会被执行。
在finally代码块中,可以运行清理类型等收尾善后性质的语句
Finally代码块出现在catch代码块最后
/*
try{
//需要被检测异常的代码
}
catch(异常类 常量)//该变量用于接收发生的异常对象
{
//处理异常的代码
}
finally
{
//一定会被执行的代码
}
*/
class Demo{
public int show(int index) throws ArrayIndexOutOfBoundsException{
if (index<0)
throw new ArrayIndexOutOfBoundsException(“越界!!”);
int [] arr=new int[3];
return arr[index];
}
}
public class FinallyDemo {
public static void main(String[] args) {
Demo d=new Demo();
try {
int num=d.show(-3);
System.out.println(“num=”+num);
} catch (ArrayIndexOutOfBoundsException e) {
// TODO: handle exception
System.out.println(e.toString());
}
finally//通常用于关闭(释放)资源
{
System.out.println(“fianlly”);
}
System.out.println(“over”);
}
}
输出结果如下

注意事项:
1、catch不能独立于try存在
2、在try/catch后面添加final块非常强制性要求的。
3、Try代码后不能既没catch块也没finally块。
4、Try,catch,finally块之间不能添加任何代码
总结:
final是修饰符(关键字)并且它是有三种用法的

  1. 类被声明为final,意味着它不能再派生出新的子类,即不能被继承;
  2. 将变量声明为final,可以保存它们在使用中不被改变;被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取不可修改。
  3. 被声明为final的方法不能在子类中被重写。
    Finally是通常放在try…catch…的后面,finally块中的代码总能执行,这就意味着程序无论正常执行还是发生异常,这里的代码只要是JVM不关闭都能执行,可以将释放外部资源的代码写在finally块中。以上都是它们之间的不同之处。

Final和Finally区别相关推荐

  1. java中static、final 和 static final之间的区别

    java中static.final 和 static final之间的区别 static可以修饰:全局属性,方法,代码块,内部类(静态内部类或嵌套内部类) 由于静态属性和方法是属于该类的所有对象的,所 ...

  2. final是什么?作用?以及final finally finalize区别?

    final是什么? final: 最终的意思,修饰的东西不可改变.可以用于修饰类.方法和变量. final 有什么用? 被final修饰的类不可以被继承 被final修饰的方法不可以被重写 被fina ...

  3. final finally finalize()区别

    final finally finalize()区别 final 表示最终的.不可改变的.用于修饰类.方法和变量. finally 异常处理的一部分,它只能用在try/catch语句中,表示希望fin ...

  4. final关键字_Dart核心语言基础const关键字与final关键字的区别

    题记:不到最后时刻,千万别轻言放弃,无论结局成功与否,只要你拼搏过,尽力过,一切问心无愧 本文描述 Dart 中 const 关键字与 final 关键字的基本使用知识点以及对比区别. Dart核心基 ...

  5. java基础知识1---面向对象及final,finally,finalize区别

    1.面向对象(OOP)的特征 •抽象 :就是把现实世界中的某一方面提取出来,用程序代码表示,抽象出来的一般叫做类或接口. 抽象包括两个方面,一个数据抽象,另一个是过程抽象. 过程抽象 :表示功能的操作 ...

  6. Dart核心语言基础const关键字与final关键字的区别

    题记:不到最后时刻,千万别轻言放弃,无论结局成功与否,只要你拼博过,尽力过,一切问心无愧 本文描述 Dart 中 const 关键字与 final 关键字的基本使用知识点以及对比区别 ** 你可能需要 ...

  7. java final f的区别_Java中final、finally、finalize的简单区别,中等区别,详细区别(Lawliet 修改+注释版)...

    简单区别: 中等区别: 虽然这三个单词在Java中都存在,但是并没有太多关联: final:java中的关键字,修饰符. 1.如果一个类被声明为final,就意味着它不能再派生出新的子类,不能作为父类 ...

  8. Java:static和final关键字的区别与比较

    文章目录 前言 一.final关键字 二.static关键字 总结 前言 本文记录笔者在复习Java基础期间学习的static和final关键字 一.final关键字 final关键字具有如下特点 f ...

  9. Flutter中关键字Const和Final之间的区别

    main() {     // 同时赋值已经确定好的值const和final是没有区别的   const date = '2020-09-01';   final date2 = '2020-09-0 ...

最新文章

  1. pandas一维度数据操作
  2. Linux掛載samba
  3. Android模拟器Genymotion安装apk
  4. c程序内存分布[转载]
  5. 用 Python+openpose 实现抖音尬舞机
  6. MTK 驱动开发(32)---Sensor 移植及调试2
  7. 【Redis笔记】简单动态字符串(SDS)
  8. 点击添加一行_微信接龙表格操作方法图文教程,以及微信聊天框怎么另起一行...
  9. 5个最受欢迎的大数据可视化软件
  10. 用C#制作PDF文件全攻略
  11. C++中类的三种继承方式public(公有继承)、protected(保护继承)、private(私有继承)之间的差别(附思维导图)
  12. python编程求长方形的面积_Python实现计算长方形面积(带参数函数demo)
  13. 抖音的推荐算法是怎样的?
  14. Kernel Panic 介绍
  15. 第26次Scrum会议(11/14)【欢迎来怼】
  16. Collections。API
  17. MySQL Day05 子查询、函数、MD5加密、SELECT小结
  18. 旧路由器改装无线打印服务器,旧路由器改wifi放大器详细教程【图】
  19. DevOps落地实践:BAT系列:CICD:iPipe vs CCI
  20. 加盟京东便利店需要什么(京东便利店加盟条件)

热门文章

  1. MOSFET 的驱动功率计算
  2. js 鼠标停留时间事件
  3. 单片机该不该用C++?
  4. 大数据赋能商业地产研策
  5. Linuxcnc-Ighethercat 调试心得
  6. 两次大战,为什么德国成不了世界霸主呢?
  7. 【线性代数】P3 行列式按行展开异乘变零定理
  8. Geek Talk 035:阿拉伯国家的创业环境和机会
  9. 爬虫让我再次在女同学面前长脸了~(现实版真实案例)
  10. Java解决递归栈溢出_Java解决栈溢出