关于Java语言的final修饰符,final修饰符和static修饰符的区别是什么?

关于Java语言的final修饰符,final修饰符和static修饰符的区别是什么?

http://www.cnblogs.com/vmax-tam/p/4053908.html

http://lavasoft.blog.51cto.com/62575/18771/

final修饰变量 变量变成了常量 类不能被继承 方法不能被重写
static 修饰的变量 方法 可以直接使用类名.来调用

static是静态修饰关键字,可以修饰变量和程序块以及类方法:

当定义一个static的变量的时候jvm会将将其分配在内存堆上,所有程序对它的引用都会指向这一个地址而不会重新分配内存;

当修饰一个程序块的时候(也就是直接将代码写在static{...}中)时候,虚拟机就会优先加载静态块中代码,这主要用于系统初始化;

当修饰一个类方法时候你就可以直接通过类来调用而不需要新建对象。

final可以修饰变量、方法及类:

当定义一个final变量时,jvm会将其分配到常量池中,程序不可改变其值;

当修饰一个方法时,该方法在子类中将不能被重写;

当修饰一个类时,该类不能被继承。

具体参见。http://www.cnblogs.com/fansen/p/4673207.html

static强调的是生存周期和作用范围,final强调的是不可再变