Java之final关键字

1.final修饰类

可以使其不被继承(断子绝孙),一般是用于比较重要的类,防止其方法被重写 

2.final修饰方法

用来保护父类的某个方法不希望被子类重写3.

 3.final修饰属性

可以防止该属性被修改

public final double TAX_RATE=0.08;

 修改final修饰的变量会报错

4.final修饰局部变量

final关键字定义的变量必须在声明时对其进行赋值操作。final修饰的局部变量不能被二次赋值修改,只能赋值一次。

5.final修饰引用

一旦一个对象引用被修饰为final后,它只能恒定指向一个对象,无法将其改变以指向另一个对象。即使被修饰为final的引用被赋值为null也算赋值一次。同时该空引用不会直接被垃圾回收器回收,只有在包含了该空引用的方法执行结束之后该引用才会被释放空间。

但是注意!,这个引用指向的对象内部是可以更改的,只是引用指向不能更改 

final注意事项和细节 

1.final修饰的量一般都叫常量,规范以XXX_XXXX_XXX命名

2.final修饰属性在定义时,必须赋初始值,并且以后不能再更改,赋值可以在如下位置之一(选择一个位置赋值即可)

(1)定义时 

(2)在构造器中

(3)在代码块中

3.如果final修饰的属性是静态的,2的说法要变一下

(1)定义时赋值

(2)静态代码块里赋值//不可以在构造器里赋值

4.final类不可以继承,但是可以实例化对象

5. 类里含final方法,final修饰发方法不能重写,但是类可以继承,其余没有被final修饰的也可以重写

6.一般来说如果一个类已经是final类了,没必要把里面的方法修饰为final方法

7.final不能修饰构造方法(构造器)

8.final一般和static搭配使用效率更高

当你用public static int a=8;

在类的外面调用类名.a时会导致类加载

但是当你public final static int a=8;

你在别的类用类名.a是就不会导致类的加载

9.基本数据类型的包装类Integer,Double,Float,Boolean等以及String都是final类

不可以被继承

10.final修饰局部变量可以不初始化,之后再赋值,一旦赋值就不能该了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小袁拒绝摆烂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值