关键字 static和final

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可以共存,表示既可以类名直接调用,又不可变

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值