final是java中的一个关键字,可以用于定义变量,方法,类。下面分别从这三个方面来介绍final。
一:用final定义变量
在java中,final定义的变量是不能改变的,所以必须在定义的时候就初始化。例如: final int a = 3;如果写成final int a; a = 3;编译器便会报错。对于final变量由于不能改变其值,所以在程序运行中可以一直放在高速缓存中,提高读的速度。并且不用考虑线程因共享变量而造成的线程不安全问题。
二:用final定义方法
在java中,final定义的方法是不能被子类重写的,因此如果你不想你写的方法在子类中被重写,你可以考虑将该方法定义为final。在类中的私有方法隐式的指定为了final方法。
三:用final定义类
在java中,final定义的类不能被继承,在java中已经有了很多final类,例如:String,Integer,Double等包装类。他们不允许被修改。String s = "a";s="b";此时如果你打印出s的结果为"b",但其实s指向的内存地址已经变了,而开始指向的内存中的量依旧时"a",JVM开辟了另外一个空间存储了"b"。
优点:
使用final时,JVM会对final定义的量做一些优化,因此在效率上会有提高。
网友评论