final修饰实例属性时,要么在定义该属性时初始化,要么在普通初始化块中,或者在构造器中初始化。但是值得注意的是:如果普通初始化块中已经初始化,则不能再在构造器中初始化该值。

    final修饰类属性时,要么在定义该属性的时候初始化,要么在静态代码块中初始化.

    实例属性不能在静态代码块中初始化该值,因为静态代码块是静态成员,静态成员不能访问实例成员。

    类属性不能在普通代码块中初始化,因为类属性已经在类初始化的时候初始化过了,不能再重新赋值了。