关键字 static和final

来源:互联网 发布:育知同创北京校区 编辑:程序博客网 时间:2024/06/05 01:12
static和final是java程序中经常用到的两个关键字,以下是我对这两个关键字的理解和总结:

一.static 关键字
1.static修饰变量
a.该变量为所有成员共享,该变量的空间在内存中只有一份
b.该变量可以直接用类名访问
c.static修饰的变量被称为类变量,不是某个对象拥有而是类拥有
d.static修饰的变量是在类加载的时候开辟空间
e.普通变量和静态变量的区别
1)静态变量在类加载的时候开辟空间,普通变量则是在创建对象的时候开辟空间
2)普通变量空间每个对象都有一份,而静态变量则是所有对象共享一份
f.如果一个变量需要多个对象共享,则需要使用static修饰
2.static修饰方法
a.该方法可以直接用类名来访问
b.静态方法只能访问静态变量( 类加载的时候,静态方法就已经有空间了)
c.静态方法只可以访问静态方法
d.非静态方法可以访问静态变成员
e.当我们设计类时,有些方法不需要创建对象调用,则可以用static修饰(用类名直接调用方法)
3.static修饰代码块(静态代码块)
代码块
a.静态代码块
(1)静态代码块在类加载的时候被执行
(2)静态代码块只会被执行一次
(3)如果想让某一个程序只运行一次,就可以使用静态代码块
b.构造代码块
(1)一般存放所有构造方法共有的代码
(2)构造代码块在每次创建对象的时候被执行,而且比构造方法先执行
(3)如果一个类有父类 则执行顺序是父类构造代码块—–>父类构造方法——->子类构造代码块——>子类构造方法
c.局部代码块
让局部变量使用后尽快释放空间
二.final关键字
1.final 修饰类
1).该类不能被继承
2).该类中的所有方法不能被重写
2.final修饰方法
1)该方法不能被重写
2)使用场景:如果;类中一个方法不能被重写就用final,其他方法可以重写
3.final修饰变量
1)final修饰的变量值不能被更改,称为常量
2)final修饰的变量可以不赋值,在构造方法中赋值
3)final修饰引用数据类型,引用数据类型的地址值不能变,但是所指向空间的内容可以改变
三.注意事项:
1.abstract不能和static和final共存
2.static和final可以共存,表示既可以类名直接调用,又不可变

原创粉丝点击