免责声明

易百易数码科技

java中final的功能有哪些(final的作用 java)

Java中final、finally、finalize的区别

Java中final、finally、finalize的区别有以下几点,具体如下:

1、final修饰符(关键字)。被final修饰的类,就意味着不能再派生出新的子类,不能作为父类而被子类继承。因此一个类不能既被abstract声明,又被final声明。将变量或方法声明为final,可以保证他们在使用的过程中不被修改。被声明为final的变量必须在声明时给出变量的初始值,而在以后的引用中只能读取。被final声明的方法也同样只能使用,即不能方法重写。

java中final的功能有哪些(final的作用 java)-图1

2、finally是在异常处理时提供finally块来执行任何清除操作。不管有没有异常被抛出、捕获,finally块都会被执行。try块中的内容是在无异常时执行到结束。catch块中的内容,是在try块内容发生catch所声明的异常时,跳转到catch块中执行。finally块则是无论异常是否发生,都会执行finally块的内容,所以在代码逻辑中有需要无论发生什么都必须执行的代码,就可以放在finally块中。

3、finalize是方法名。java技术允许使用finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在object类中定义的,因此所有的类都继承了它。子类覆盖finalize()方法以整理系统资源或者被执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。

final的5种形式

动词形式是finalize,意思是把(计划、旅行、项目等)最后定下来;定案。

java中final的功能有哪些(final的作用 java)-图2

下面列举几个Java包中的final类

java.lang包(列举所有final类)

包装类:Boolean,Character,Short,Integer,Long,Float,Double,Byte

java中final的功能有哪些(final的作用 java)-图3

Void类:是一个不可实例化的占位符类,它持有对标识Java关键字void的Class对象的引用

在Java中如何定义宏

宏定义经常出现在在C/C++代码中,以“#define **” 的形式出现。java中也有“宏变量”,不过是另一种形式。

final是java中的一个关键字,用来修饰类、成员变量、局部变量、方法,表示不可变。当final修饰一个变量时,已经为该变量指定了初始值,那么这个变量在编译时就可以确定下来,那么这个final变量实质上就是一个“宏变量”,编译器会把程序中所有用到该变量的地方替换成该变量的值。

为什么jdk中把String类设计成final的

有一个解释就是当定义String类型的静态字段(也成类字段),可以用静态变量(非final)代替常量(final)加快程序速度。反之,对于原始数据类型,例如int,也成立。例如,你可能创建一个如下的String对象:private static final String x = "example";对于这个静态常量(由final关键字标识),你使用常量的每个时候都会创建一个临时的String对象。在字节代码中,编译器去掉”x”,代替它的是字符串“example”,以致每次引用”x”时VM都会进行一次哈希表查询。相比之下,度于静态变量(非final关键字),字符串只创建一次。仅当初始化“x”时,VM才进行哈希表查询。还有另一个解释:带有final修饰符的类是不可派生的。在Java核心API中,有许多应用final的例子,例如java.lang.String。为String类指定final防止了人们覆盖length()方法。  另外,如果指定一个类为final,则该类所有的方法都是final。Java编译器会寻找机会内联(inline)所有的final方法(这和具体的编译器实现有关)。此举能够使性能平均提高50%。

到此,以上就是小编对于final的作用 java的问题就介绍到这了,希望介绍的4点解答对大家有用,有任何问题和不懂的,欢迎各位老师在评论区讨论,给我留言。

分享:
扫描分享到社交APP
上一篇
下一篇