java中的final

Python013

java中的final,第1张

使用final关键字定义常量,常量名不区分大小写。但是统一将常量名用大写来表示可以增强代码的可读性。别人阅读你的代码时一看是大写的就知道它是一个常量。它仅仅是SUN建议大家这样做,Java底层类库源码本身也是采用常量名为大写形式的,例如:

private static final int DEFAULT_CAPACITY = 10

1.static 静态的。

a) 使用此修饰符修饰的属性,其生命周期与类的生命周期相同。相对的没有使用此修饰符修饰的属性,生命周期与此类的某个实例的生命周期相同。也就意味着当,此类被卸载时,static变量才会被销毁。

b) 使用此修饰符修饰的方法,可以直接使用类名.方法名的方式调用,相对的,没有使用此修饰符修饰的方法,只能通过实例名.方法名的方式调用。(对于实例方法和静态方法在微观上的区别,还不是很理解,希望会的同学予以补全)

2.final 不可变的,使用此修饰符修饰的变量,值不可以重复赋值。也就意味着这时一个值不可变的变量,也就是常亮。

用final修饰的成员变量表示常量,值一旦给定就无法改变!final修饰的变量有三种:静态变量、实例变量和局部变量,分别表示三种类型的常量。从下面的例子中可以看出,一旦给final变量初值后,值就不能再改变了。另外,final变量定义的时候,可以先声明,而不给初值,这中变量也称为final空白,无论什么情况,编译器都确保空白final在使用之前必须被初始化。但是,final空白在final关键字final的使用上提供了更大的灵活性,为此,一个类中的final数据成员就可以实现依对象而有所不同,却有保持其恒定不变的特征。