Final与Static
final在Java中的作用(凡是被final修饰过的地方皆不可修改)
1.修饰类:表示该类不能被继承
2.修饰方法:表示方法不能被重写
3.修饰变量:表示赋值一次以后不能再被修改(常量)
4.修饰引用:表示引用不可变,引用指向的内容可变
5.被修饰的方法JVM会尝试将其内联,以提高运行效率
6.被修饰的常量,在编译阶段会存入常量池中
注:在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这俩个操作之间不能重排序,初次读一个包含final域的对象的引用与随后初次读这个final域,这俩个操作之间不能重排序。
static在Java中的作用(凡是被static修饰过的变量/方法都是属于类的静态资源,类实例所共享)
除静态变量和静态方法之外,static也可用于静态块(多用于初始化)
public class{ PreCache{ static{ } } }
还用于静态导包JDK1.5以后引入新特性,可用来指定导入某个类中的静态资源且不需要使用类名可直接使用资源名
import static java.lang.Math.*;
static和final的区别