static
1)用来声明成员属于类,而不是属于类的对象;
2)static修饰变量,该变量可以被类的所有对象共享;
3)static修饰方法,该方法可以通过类名直接调用,而不用通过对象调用;
4)static修饰代码块,类的静态代码块用来初始化类,给类的静态变量赋值,而类的构造函数用来初始化类的实例;
补充:博主:若不是因为你-->理论小知识
final
1)final修饰类,表示该类不能被继承;
2)final修饰变量,使该变量成为常数,改变final的值会导致一个编译错误;
3)final修饰方法,表示该方法不能被覆盖;被标记为static或private的方法被自动的final;
--> Java中绑定的所有方法都采用后期绑定技术,除非一个方法已被声明成final。这意
味着我们通常不必决定是否应进行后期绑定——它是自动发生的。为什么要把一个方
法声明成final呢?它能防止其他人覆盖那个方法。但也许更
重要的一点是,它可有效地“关闭”动态绑定,或者告诉编译器不需要进行动态绑定。
这样一来,编译器就可为final方法调用生成效率更高的代码。
--《Think in Java》7.2.1