final 和 finally 关键字

简介: final 和 finally 关键字

一、final

final: 可以修饰类、成员变量和成员方法。


类:不能被继承(比如 String、StringBuilder、StringBuffer、Math,不可变类),其中所有的方法都不能被重写(这里需要注意的是不能被重写,但是可以被重载,这里很多人会弄混),所以不能同时用 abstract 和 final 修饰类(abstract修饰的类是抽象类,抽象类是用于被子类继承的,和final起相反的作用)

方法:不能被重写,但是不影响子类使用父类中被final修饰的方法

成员变量:不可变的。如果成员变量是基本数据类型,初始化之后成员变量的值不能被改变。如果成员变量是引用类型,那么它只能指向初始化时指向的那个对象,不能再指向别的对象,但是对象当中的内容是允许改变的。


什么时候使用 final 这个关键字?

       把方法锁定,以防任何继承类修改它的含义

二、finally

使用环境:


通常和try catch搭配使用,保证不管有没有发生异常,资源都能够被释放(释放连接、关闭IO流)


功能:

       当try中有return时执行顺序:return语句并不是函数的最终出口,如果有finally语句,这在return之后还会执行finally(return的值会暂存在栈里面,等待finally执行后再返回)

相关文章
|
3月前
|
消息中间件 Kubernetes NoSQL
c++11 关键字 override 与 final
c++11 关键字 override 与 final
|
5月前
|
存储 Cloud Native Linux
C++ 关键字override,final的作用
C++ 关键字override,final的作用
|
1月前
|
C#
29.C#关键字throw初步学习
29.C#关键字throw初步学习
16 0
|
6月前
|
Java API
每日一道面试题之final、finally、finalize 有什么区别?
每日一道面试题之final、finally、finalize 有什么区别?
|
7月前
|
Java 编译器 C#
C#中的override和new关键字
在 C# 中,派生类可以包含与基类方法同名的方法。 基类方法必须定义为 virtual。 如果派生类中的方法前面没有 new 或 override 关键字,则编译器将发出警告,该方法将有如存在 new 关键字一样执行操作。 如果派生类中的方法前面带有 new 关键字,则该方法被定义为独立于基类中的方法。 如果派生类中的方法前面带有 override 关键字,则派生类的对象将调用该方法,而不是调用基类方法。 可以从派生类中使用 base 关键字调用基类方法。
37 1
|
8月前
|
Java
关键字final
关键字final
26 0
|
10月前
|
Java
Java中的final finally finalize关键字
Java中的final finally finalize关键字
|
开发者 Python
Finally 关键字的使用 | 学习笔记
快速学习 Finally 关键字的使用
62 0
final, finally, finalize的区别。
final, finally, finalize的区别。
|
Java
《final,finally,finalize 三者区别》
《final,finally,finalize 三者区别》
96 0