参考自http://blog.youkuaiyun.com/u014276600/article/details/52144203
static:修饰类中的变量,让它成为静态变量,在类加载的时候初始化,JVM为它分配一次内存,所有此类的对象共享它的值。
static方法:不依赖于任何实例而调用,不能用abstract修饰,必须实现
static修饰代码块:在类被加载时会执行这一段代码,当父类与子类都有static代码块时,先运行父类的,再运行子类的。
final修饰基本数据类型使它保持不变,用static和final共同修饰一个变量,则确保了只有一份和保持不变。将参数声明为final则意味着无法在方法中更改参数引用所指向的对象。(主要用来向匿名内部类传递数据)
final方法
1、使用final修饰方法时,可以把方法锁定,以防任何继承类修改它的含义。这是出于设计的考虑
2、方法被修饰为final时,就是同意编译器将针对该方法的所有调用都转换为内嵌调用。
3、所有的private方法都隐式地指定为final的。
final修饰类:
1、当某个类整体定义为final时,就表明你不打算继承该类,而且也不允许别人这样做。(有一次面试时被问到String类可不可以被继承,当时没有回答上来,好在面试官告诉了我String类不能继承主要是因为被final修饰了)。