final是Java中的一个关键字,可以用来修饰类、方法、变量。
- 当用final来修饰类时,表示这个类不可以被继承,可以确保一些安全性,防止类被纂改。
- 而final用来修饰方法,表示方法不可以被重写。
- final修饰变量时,如果是基本数据类型,值不可变。
如果是引用类型,引用指向的地址值不变,但地址的内容可能会变。final可以用来解决一些安全性问题。比如Java的一些核心类库的类的API接口不想被纂改就使用final修饰方法。
Java希望String类是不可变的,就使用final修饰String类并且修饰成员变量char[]数组,并且没有提供setter方法,这样就可以确保String类是不可变的。
另外,如果有多个线程操作同一个变量,并且这个变量的值不会变化,可以考虑使用final修饰解决线程安全问题。