final修饰的常量,规范写法大写,一般用XX_XX_XX命名
final修饰的属性在定义时,必须赋初值,并且以后不能修改,赋值可以在
class AA{
//1.定义时
public final double TAX_RATE=0.08;
public final double TAX_RATE2;
public final double TAX_RATE3;
//2.在构造器中
public AA(){
TAX_RATE2=0.09;
}
// 3.在代码块中
{
TAX_RATE3=0.06;
}
}
如果final修饰的属性是静态的,则初始化的位置只能是
class BB{
//如果final修饰的属性是金泰的,则初始化的位置只能是
//1.定义时
public final double TAX_RATE=0.08;
public static final double TAX_RATE2;
//2.静态代码块中
static {
TAX_RATE2=9.9;
}
}
final 类不能被继承,但是可以实例化对象
如果类不是final类,但是含有final方法,则该方法虽然不能重写,但是可以被继承
一般来说,如果一个类已经是final类了,就没有必要再将方法修饰成final方法。
final不能修饰构造方法(构造器)
final和static往往搭配使用,效率更高,底层编译器做了优化处理。不会导致类的加载(就是静态代码块部分不被执行)
包装类(Integer,Double,Float,Boolean等都是final),String也是final类