java学习(七)-数字、静态(static)与不可变(final)

1、静态(static)
  • java虽然是面向对象的,但若处于某些特殊情况下,通常是实用方法,则不需要类的实例,stati这个关键词就可以标记处不需要类实例的方法。
  • static修饰类为静态类,该类不允许被实例化。静态类通过私有的构造方法,来禁止该类被实例化。例如:Math、String等
    在这里插入图片描述
  • statis修饰方法为静态方法不能调用非静态的变量。也不能调用非静态的方法,非静态的方法必须是以实例变量的形式来调用。因为静态方法调用的时候,还未实例化,所有不会存在非静态的实例变量。
  • static修饰变量为静态变量,他是被同类的所有实例共享的变量。(实例变量,是每个类的实例单独拥有的变量值)。静态变量会在该类的任何对象创建之前就完成初始化,静态变量会在该类的任何静态方法执行之前完成初始化。若没有给静态变量赋予初始值,则会设定为默认值。
  • 静态方法和静态变量,都是通过类名称.静态方法名类名称.静态变量名来存取和调用
2、不可变(final)
  • 一个被标记为final的变量代表他一旦被初始化后就不会改动。也就是类加载之后final变量就会一直维持原值。
  • 静态的final变量是常数。通过类名进行调用。必须在声明或静态初始化程序中赋值。
  • 非静态的final变量,代表你不能改变它的值
  • final修饰的方法,代表子类不允许覆盖该方法
  • final修饰的类,代表不允许被继承。如Sting、Integer等。确保安全,所有使用这些类的,都是同一个版本的。
3、区别
final
  • 修饰类:例如string、integer等,不允许被继承,确保安全,所有被调用的方法都是原始版本
  • 修饰方法:不允许被重写(继承的时候不允许子类有与父类相同的方法)
  • 修饰变量:值不可变,引用也不可变
  • 修饰对象:不可改变其引用,可改变其值
static
  • 修饰变量:静态变量(例如:全局变量),只有一份,编译时候已经决定
  • 修饰方法:不依赖任何对象,所以static方法中不能使用非static的变量和方法(因为它们必须依赖具体对象才能被调用,而static方法使用时这些对象可能还未创建。);不能被覆盖,因为方法覆盖是基于运行时动态绑定,而static方法是编译时静态绑定的。
  • 修饰代码块:做初始化,只执行一次,可以优化代码块
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值