1、static
可以修饰变量、方法和内部类,其标记的变量或者方法由整个类(所有实例)共享,如果访问控制权限允许可以通过类名调用。static 成员也称为类成员或静态成员。
在 static 方法内部只能访问类的 static 成员(包括变量和方法),不能访问类的非 static 成员,也不能有 this 和 super(因为static 方法不需要实例化也可以访问)。
main 方法是静态的,因此 JVM 在执行 main 方法时不创建 main 方法所在的类的实例对象,因而在 main() 方法中,我们不能直接访问该类中的非静态成员,必须创建该类的一个实例对象后,才能通过这个对象去访问类中的非静态成员。
static block(静态代码块):类被载入时,静态代码块被执行,且只被执行一次,通常用来进行属性的初始化。
static{
........... //在此进行初始化
}
2、final
可以修饰类、属性和方法,final 标记的变量(成员变量或局部变量)即成为常量,只能赋值一次。
final 标记的类不能被继承。提高程序的安全性和可读性。
final 标记的方法不能被子类重写。
final 标记的成员变量必须在声明的同时或在每个构造方法中显式赋值之后才能使用。