使用final修饰基本类型时必须初始化(定义时或在构造器中),并且初始化后值就无法改变;而在修饰类类型时也必须初始化(定义时或在构造器中),且初始化的引用无法改变,但是对象的属性可以改变。
static表示该类型的所有对象共用一个存储区域,一般在可以不生成对象而直接通过类名调用,在static修饰的方法中只能使用static 修饰的属性。
所以,final 和 static 还是有蛮大的区别,简单的说就是:前者初始化后无法再改变其值,但是所属类的每个对象都有一份;而后者可以改变其值,但是所属类的对象是共用一份。
static final int表示编译时期即确定的常变量而final修饰的则在运行时菜确定,和一般的常量起的作用一样;但是,使用常变量增加了程序的可读性。