一、final
1 - 修饰成员变量:表示常量,一但赋值不可修改。
对于基本类型的数据,final会将值变为一个常数。
对于对象句柄(可称为指针或者引用),final会将句柄变为一个常数。
2 - 修饰成员方法:
(1)不可以修饰构造方法。
(2)private修饰的方法默认是final的,不能被覆盖。
(3)普通的方法,被修饰后可以被继承,不能覆盖。
3 - 修饰类:类不能被覆盖,类中的方法默认是final
二、static
1 - 修饰成员变量
不依赖类的特定实例,被类的所有实例共享。static不可修饰局部变量。
2 - 修饰成员方法
不依赖类的特定实例,被类的所有实例共享。
3 - 形成静态的static代码块
三、static final
1 - 修饰成员变量
static修饰表示它可以通过类名访问,只有一个;final修饰表示它是一个常数。两个结合一起表示,一但赋值,不可修改,通过类名可以访问。
*对于一些容器类型(ArryList、HashMap..)的实例变量,不改变容器本身,但可以修改容器中的存放对象。
2 - 修饰成员方法
方法不可覆盖,通过类名可以访问。