static和final

static 修饰符
范围 :只能修饰类的成员。属性,方法,内部类,初始化块。其他的都不行。
static修饰的成员称为 静态成员,没有static修饰的又称为非静态成员
static修饰的属性称为静态属性,修饰的方法称为静态方法。
1.1静态成员的特点
1.随着类的加载而加载。
2.静态的成员存储在方法区中(静态域)
3.只此一份,因为类只能加载一次。
4.静态成员都只和类有关与方法无关,也可用方法调,但通常用类名.静态成员名。
5.只能访问静态的方法,属性等等静态成员。
6.普通的方法可以访问所有。
final修饰符
范围:类,属性,方法,局部变量等。
特点
1.修饰类。类不可以被继承,但可以继承其他类不影响。代表类:String、Integer等
2.修饰方法。方法不可以被重写,但子类是可以访问的,只是重写不了。
3.修饰属性和局部变量
3.1修饰属性或局部变量就称为常量了一旦被赋值,就不能再修改值了。
3.2修饰属性一般会遵循以下约定,变量名一定要全大写
3.3一般static和final搭配使用修饰常量,比如在单例模式中如果还定义了其他的静态变量, 如果只想调此静态变量也会加载其他的静态变量或静态方法,如果此静态变量有final来修饰后,就会
只加载此常量,其他不再加载,因为在jvm中对此有优化。
对于基本类型来说是值,赋值了就不能再改该值了。
对于引用类型来说,是不能改地址值。
对于常量一声明就得立马赋值,或者在构造器中赋值。其他地方不行。






猜你喜欢

转载自blog.csdn.net/shuimofengyang/article/details/79671761
今日推荐