Java中final与static的使用
Final关键字 根据使用环境不同,final的含义会有细微的区别,但通常是指无法改变的内容。final关键字可以修饰变量、方法和类。 Final变量 final数据是用来向编译器告知变量是恒定不变的。对使用基本类型数据的常量,在定义时必须对其赋值。一个既是static又是final的域只会占据一段不能改变的存储空间。当对象使用引用而不是基本类型时使用final修饰,final使引用恒定不变,但其引用的内容可变。 空白的final允许的,但在使用前必须初始化,一旦初始化,将不能再更改。一般应用于类中,在定义处或构造方法中初始化。方法的参数也可以被final修饰,final参数不能更改参数引用指定的对象,主要用来向匿名内部类传递数据。 接口中定义的域不能是空白final的,因为接口中的域都是static final,所以必须在定义时进行初始化。其他位置的static final也一样。 Final方法 final方法的使用原因有两个: 锁定方法,防止继承类修改和覆盖方法。 加强效率,将调用转换为内嵌,该条仅限于小方法使用。 类中所有私有方法都隐式的指定为final的,虽然可以给私有方法加final修饰,但不会有任何意义。 Final类 final类表示该类无法被继承。final类中的域可根据选择是否成为final域,但类中的方法都将隐式的指定为final的