•final变量
如果在变量前加final关键字,则这个变量一旦被初始化,便不可再改变。
如果一个final变量是类成员变量,则必须被初始化,且只能被初始化一次。
方法中的参数也可以是final变量。这在我们需要传递引用型的变量时非常有用,因为有时候我们并不希望调用函数修改该变量而影响到原函数中对象的值。因此将引用型变量设为final类型可以有效方式变量被调用参数修改。此时在调用方法中只可以使用该变量,但不能对其做任何修改。
void test(final int a){
//can not modify a
}
•final方法
若一个类中的某个方法是final的,则该类的子类可以直接使用这个方法,但不能覆盖这个方法。
有些编译器会再调用final方法时,直接将final方法的主体插到调用处来提高效率,而不是采用保存断点、压栈等常规方法。
•final类
如果一个类是final的,那么它不能被继承。因此final类是一个叶子类,它不能是abstract的。final类中的方法肯定是final的(但并不需要在方法中显式添加final关键字,当然添加也无所谓),final类的变量可以是final或非final的。