一、JAVA中final 与 static 总结
 
 finalstatic
修饰类该类不可被继承只能修饰内部类,该类不需要new,是静态加载(嵌套顶层类)
修饰接口××
修饰构造函数××
修饰语句块×虚拟机按声明顺序初始化static成员字段和static语句块
修饰字段属性表示属性初始化后不能修改(实例常量)是类变量,所有实例共享该变量值(类变量)
在定义时或构造函数中赋值(每个实例拥有一份拷贝)
修饰方法该方法不能被覆盖(只可继承)是类方法,所有实例共享该方法(类方法)
修饰函数参数参数值不能被函数修改×
修饰函数局部变量局部变量初始化后不能修改(局部常量)×
   
用途1).为了防止方法被覆盖或改写;1).定义全局变量或常量;
2).提高运行效率,JAVA对final方法调用采用内嵌机制;2).定义类方法;
   
二、JAVA类加载顺序
JAVA类加载顺序:1).按代码顺序递归加载静态成员/代码块,先父类再本类;
 2).按代码顺序递归加载非静态成员/代码块,先父类再本类;
 3).按代码顺序递归调用构造函数,先父类再本类;
  
JAVA类加时机:1).调用静态成员时,加载静态成员所在的类及父类;
 2).第一次new对象时加载(第二次new不再加载)
 3).加载子类会先加载父类.有static和final修饰的成员不会被加载;当成常量使用;