static,final用法总结

static 用法:

static修饰变量

按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量;另一种是没有被static修饰的变量,叫实例变量。
区别是:对于静态变量在内存中只有一个拷贝(节省内存),JVM只为静态分配一次内存,在加载类的过程中完成静态变量的内存分配,可用类名直接访问(方便),当然也可以通过对象来访问(但是这是不推荐的)。对于非静态实例变量,每创建一个实例,就会为实例变量分配一次内存,实例变量可以在内存中有多个拷贝,互不影响(灵活)。
另外方法中的内部类在用到方法中的参变量时,此参变也必须声明为final才可使用。

static修饰方法

static方法可以直接通过类名调用,任何的实例也都可以调用进行调用,但是不能被this和super调用,不能访问的非静态实例(需要创建),另外,static独立,必须实现,不能被抽象。
##static代码块
static代码块是类加载时,初始化自动执行的。对于多个static代码块JVM将按照它们在类中出现的顺序依次执行,每个代码块只会被执行一次。

final 用法:

final 修饰 变量

final修饰的基本类型变量只能被初始化一次,初始化后不能被修改,修饰的引用类型变量引用不能被修改。 final 字段有助于优化器作出更好的优化决定,因为如果编译器知道字段的值不会更改,那么它能安全地在寄存器中高速缓存该值。final 字段还通过让编译器强制该字段为只读来提供额外的安全级别。

final 修饰 方法

final修饰的方法不能被子类重写, 编译器在遇到调用final方法时候会转入内嵌inline机制,大大提高执行效率。

final 修饰 类

final修饰的类不能被继承

总结:

集合了static和fianl的特点,修饰的变量不能被修改,修饰的方法可以直接被类引用,不能被子类重写,修饰的类不能背继承。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值