java final

Posted 西伯尔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java final相关的知识,希望对你有一定的参考价值。

1.final使用范围

类,方法,成员变量,本地变量。

2.final关键字的好处

(1)final关键字提高了性能。JVM和Java应用都会缓存final变量。

(2)final变量可以安全的在多线程环境下进行共享,而不需要额外的同步开销。

(3)使用final关键字,JVM会对方法、变量及类进行优化。

3.注意

(1)被final关键字修饰的类不能被继承,被final关键字修饰的类属性和类方法不能被重写。

(2)不能被赋值,跟常量类似,报错如下。

(3)final成员变量必须在声明的时候初始化或者在构造器中初始化,否则编译报错。final本地变量必须在声明时初始化。

(4)在匿名类中所有变量都必须是final变量。接口中声明的所有变量本身是final的。

(5)final关键字不同于finally关键字,后者用于异常处理。

(6)final关键字容易与finalize()方法搞混,后者是在Object类中定义的方法,是在垃圾回收之前被JVM调用的方法。

(7)final和abstract这两个关键字是反相关的,final类就不可能是abstract的。

(8)final方法在编译阶段绑定,称为静态绑定(static binding)。

(9)按照Java代码惯例,final变量就是常量,而且通常常量名要大写。

(10)集合对象声明为final指的是引用不能被更改,但是你可以向其中增加,删除或者改变内容。

参考:
 http://www.importnew.com/7553.html

 

以上是关于java final的主要内容,如果未能解决你的问题,请参考以下文章

Java -- 每日一问:谈谈 finalfinally finalize 有什么不同?

finalfinally finalize 有什么不同?

finalfinally与finalize的区别

看完这篇 finalfinally 和 finalize 和面试官扯皮就没问题了

java真实面试_深圳百纳九州_java的基本数据类型有几种,并且写出全部的数据类型写出常用的Linux命令finalfinalize和finnally的不同之处用java手写一个单例类

finalfinally与finalize的区别?