问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

简述final和finally的用法和区别

发布网友 发布时间:2022-04-28 14:53

我来回答

5个回答

热心网友 时间:2022-06-19 07:16

我们依次来回顾一下每种情况下final的作用。首先来看第一种情况,如果final修饰的是一个基本类型,就表示这个变量被赋予的值是不可变的,即它是个常量;如果final修饰的是一个对象,就表示这个变量被赋予的引用是不可变的,这里需要提醒大家注意的是,不可改变的只是这个变量所保存的引用,并不是这个引用所指向的对象。在第二种情况下,final的含义与第一种情况相同。实际上对于前两种情况,有一种更贴切的表述final的含义的描述,那就是,如果一个变量或方法参数被final修饰,就表示它只能被赋值一次,但是JAVA虚拟机为变量设定的默认值不记作一次赋值。

被final修饰的变量必须被初始化。初始化的方式有以下几种:

1、在定义的时候初始化。
2、final变量可以在初始化块中初始化,不可以在静态初始化块中初始化。
3、静态final变量可以在静态初始化块中初始化,不可以在初始化块中初始化。
4、final变量还可以在类的构造器中初始化,但是静态final变量不可以。

接下来我们一起回顾一下finally的用法。这个就比较简单了,它只能用在try/catch语句中,并且附带着一个语句块,表示这段语句最终总是被执行。请看下面的代码:
Java代码
public final class FinallyTest {
public static void main(String[] args) {
try {
throw new NullPointerException();
} catch (NullPointerException e) {
System.out.println("程序抛出了异常");
} finally {
System.out.println("执行了finally语句块");
}
}
}

运行结果说明了finally的作用:

1、程序抛出了异常
2、执行了finally语句块

请大家注意,捕获程序抛出的异常之后,既不加处理,也不继续向上抛出异常,并不是良好的编程习惯,它掩盖了程序执行中发生的错误,这里只是方便演示,请不要学习。

热心网友 时间:2022-06-19 07:17

我们依次来回顾一下每种情况下final的作用。首先来看第一种情况,如果final修饰的是一个基本类型,就表示这个变量被赋予的值是不可变的,即它是个常量;如果final修饰的是一个对象,就表示这个变量被赋予的引用是不可变的,这里需要提醒大家注意的是,不可改变的只是这个变量所保存的引用,并不是这个引用所指向的对象。在第二种情况下,final的含义与第一种情况相同。实际上对于前两种情况,有一种更贴切的表述final的含义的描述,那就是,如果一个变量或方法参数被final修饰,就表示它只能被赋值一次,但是JAVA虚拟机为变量设定的默认值不记作一次赋值。

被final修饰的变量必须被初始化。初始化的方式有以下几种:

1、在定义的时候初始化。
2、final变量可以在初始化块中初始化,不可以在静态初始化块中初始化。
3、静态final变量可以在静态初始化块中初始化,不可以在初始化块中初始化。
4、final变量还可以在类的构造器中初始化,但是静态final变量不可以。

接下来我们一起回顾一下finally的用法。这个就比较简单了,它只能用在try/catch语句中,并且附带着一个语句块,表示这段语句最终总是被执行。请看下面的代码:
Java代码
public final class FinallyTest {
public static void main(String[] args) {
try {
throw new NullPointerException();
} catch (NullPointerException e) {
System.out.println("程序抛出了异常");
} finally {
System.out.println("执行了finally语句块");
}
}
}

运行结果说明了finally的作用:

1、程序抛出了异常
2、执行了finally语句块

请大家注意,捕获程序抛出的异常之后,既不加处理,也不继续向上抛出异常,并不是良好的编程习惯,它掩盖了程序执行中发生的错误,这里只是方便演示,请不要学习。

热心网友 时间:2022-06-19 07:17

finally的用法。它只能用在try/catch语句中,并且附带着一个语句块,表示这段语句最终总是被执行
finalize()方法是在GC清理它所从属的对象时被调用的,如果执行它的过程中抛出了无法捕获的异常(uncaught exception),GC将终止对改对象的清理,并且该异常会被忽略;直到下一次GC开始清理这个对象时,它的finalize()会被再次调用。

热心网友 时间:2022-06-19 07:18

final:禁止多态开关~
修饰变量:变量不能被改变
修饰类:类不能被继承
修饰方法:方法不能被重写

finally:用在异常处理的最后一个语句块
无论是否产生异常都要被执行~~~

楼主不要忘了结贴~~~~~~~~~

热心网友 时间:2022-06-19 07:18

final是用来定义静态域的(第一次初始化后就不能再修改)
finally一般用于异常处理try{}catch(){}finall{}...就最后finally一定会执行...一帮用于关闭流和资源(万一抛异常后面的就不执行....而你的关闭资源放在catch..发生异常你的资源就关闭不了啦)
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
不喜欢参加聚会怎么办 ...的电信8兆的宽带是169元每月可是用了2天就停机了,他说第一个月... 电信8兆宽带多少钱 爸妈想换5G套餐有没有那种可以绑定宽带一起的? ...换了波箱油后加速转速变高且偶有空转是怎么回事? 苦菜花的花语和寓意是什么? 苦菜花的花语是什么? 安徽省人事档案查询,调档等网上操作指南 安徽哪个网站调档 宽带10M与100M有什么区别啊?宽带10M和100M与平板电脑4G卡的用法用量有... Java 在try—catch块之后的finally是干什么的? ^ ^请教JAVA中的异常finally{...}语句里面要写什么,有什么作用? java中final和finally的区别 java finally什么时候执行 java中,有try没catch有finally怎么用? java中为什么用finally语句 Java中final,finally和finalize的区别是什么? java中final,finally和finalize的区别 java中的finally怎么使用? 试解释Java与Finally的意义及用法? finally在java的用法 java中的“try - catch -finally”结构中的“finally”有哪些用途 祝朋友生日快乐的一段话 祝朋友过生日的句子 祝福朋友生日快乐的唯美句子 祝朋友生日快乐四字短句子 祝福好朋友生日快乐的话霸气简短 祝好友生日快乐的句子霸气 微信电脑版什么时候能够添加置好友标签功能? 水库草鱼片怎么做好吃 Java 异常中的一个疑惑—finally存在的意义 关于JAVA中finally的问题.... java里面finallyf是什么意思如何应用 哈弗H2s多少钱? 哈弗H2s车价是多少? 哈弗h2s是什么时候上市的车型 格式工厂k gm文件转成mp 3文件失败是怎么回事? 哈弗H2s车价多少油耗 哈弗h2s自动挡多少钱?哈弗h2s是自动挡吗 如何正确选购地磅的大小长度和吨位 怎么样才能确定地磅称重准不准确? 怎样验证地磅的准确性 如何判断电子地磅的好坏与否 请教:关于地磅读数稳定的判断 地磅精确度如何调整 怎么检测地磅称重传感器是否正常 如何选择电子地磅的尺寸和吨位 怎么才是地磅的正确安装方式 地磅不准了,怎么调试?能不能说的具体点? 如何知道地磅上的猫腻