static与final的区别

static

  • static代表静态、全局。
  • static可以修饰变量、方法、代码块
  • static变量
    被类的实例所共用,在类加载时被创建并进行初始化,可以修改。
  • static方法
    1. 被类的实例所共用,在类加载时创建,可以直接通过类名调用;
    2. main函数为static的原因:在类加载时无法创建对象,因为静态方法可以不通过对象调用,所以在类的main方法所在在类加载时就可以通过main方法入口来运行程序;
    3. 静态方法中不能用this和super关键字;
  • static代码块
    JVM加载类时会执行静态代码块,如果static代码块有多个,JVM将按照它们在类中出现的先后顺序依次执行它们,每个代码块只会被执行一次。
    在类中独立于类成员,可以有多个。

final

  • final代表最终、常量
  • final可以修饰变量、方法、类
  • final变量:
    1. final变量就是常量(最好应当大写),一旦赋值不能改变,常量必须被赋值
    2. 常量的赋值方式:初始化时赋值、构造函数中赋值
  • final方法:
    1. 被final修饰的方法将不能被其子类覆盖。
    2. final不能用来修饰构造方法
    3. 在父类中如果有常量属性,在子类中使用常量属性时是不会进行父类的类加载。
    4. private类型的方法默认是final类型
  • final类:
    被final修饰的类将不能被继承,final类中的方法也都是final方法。

static final

  • static final代表静态常量(全局常量)
  • static final 变量
    1. 一旦给定值就不能修改,可以通过类名访问。
    2. 如果是容器被static final修饰,容器成员可以变,但是容器自身不能变(例如已经是ArrayList,不能变为LinkedList)
  • static final 方法
    不可覆盖方法,可以通过类名访问。
  • static final 用来干什么
    当一个变量是固定的值,并且不创建对象就想使用它,此时可以使用static final

参考:
https://blog.csdn.net/qq_38998213/article/details/81364503
https://www.cnblogs.com/EasonJim/p/7841990.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值