final意义:最终的,不可改变的。
1、修饰变量,为常量,值不可变;
2、修饰对象,值可变,引用不变;
3、修饰方法,方法不可重写;
4、修饰类,无子类,不可以被继承,更不可能被重写。
1.final修饰的基本类型变量必须赋值,但是只能赋值一次(可以在声明时显示初始化赋值,或者在构造方法中初始化赋值,或者在初始化块中初始化赋值)。
你在声明时: private final int j; 没有显示初始化,那么就必须在构造方法中初始化赋值,或者在初始化块中初始化赋值,否则编译时出错,正因为你在构造方法里面:j=2;给j赋值了,所以编译通过;你把j=2注释掉,试一下就知道了;
2.final修饰的引用类型变量赋值之后,不能再指向其他对象!但是所引用对象的内部属性的值是可以改变的。