复习Java关键字之Final

本文详细介绍了Java中的final关键字,包括如何修饰类、方法和变量。final用于禁止继承、防止方法重写以及确保变量不可变。常见应用场景如包装类、字符串类、系统类等。此外,final修饰局部变量可以防止意外修改,提高代码安全性。了解final的使用有助于优化代码结构和性能。
摘要由CSDN通过智能技术生成

目录

 

序言

修饰类

修饰方法

修饰变量


序言

final是Java中的一个保留关键字,它可以用来修饰类、方法和成员变量,下面就看一下具体的内容吧。

 

修饰类

当用final修饰一个类时,表明这个类不能被继承。使用final修饰类的时候,要注意谨慎选择,除非这个类真的在以后不会用来继承或者出于安全的考虑,尽量不要将类设计为final类,常见的final类如有如下几种:

  • 包装类:Boolean,Character,Short,Integer,Long,Float,Double,Byte,Void
  • 字符串类:String,StringBuilder,StringBuffer
  • 系统类:Class,System,RuntimePermission,Compiler
  • 数学类:Math,StrictMath

 

修饰方法

使用final方法的原因是以下两种。

  1. 方法锁定,以防任何继承类修改它的含义。
  2. 提高效率。在早期的Java实现版本中,会将final方法转为内嵌调用。但是如果方法过于庞大,可能看不到内嵌调用带来的任何性能提升。在最近的Java版本中,不需要使用final方法进行这些优化了。

综上,即防止方法被继承的子类重写。另外,类的private方法会隐式地被指定为final方法。

 

修饰变量

修饰变量是final用得最多的地方。final关键字可以修饰实例变量和局部变量。

修饰实例变量时,实例变量声明在类中,但在方法、构造方法和语句块之外。修饰的变量可能是基本数据类型,也可能是引用数据类型。分为以下两种情况:

  • 如果是基本数据类型的变量被final修饰,则其数值初始化后就不能再进行修改;
  • 如果是引用数据类型的变量被final修饰,则在对其初始化后将被能再指向其他对象。

修饰局部变量时,局部变量可以声明在方法、构造方法或者语句块中。比如方法中的局部变量通过final修饰,方法(函数)的参数传递有下面两种方式:

  • 值传递的参数被final修饰后,其数值在传入后将不能再被修改;
  • 引用传递的参数被final修饰后,其对象在传入后将不能再指向其他对象。

 

注意:Java中没有全局变量的概念。其他概念如下,

  • 类变量(静态变量):独立于方法之外的变量,用 static 修饰。静态变量储存在静态存储区。
  • 实例变量:独立于方法之外的变量,不过没有 static 修饰。实例变量在对象被实例化之后值确定,在对象被销毁时销毁。
  • 局部变量:类的方法中的变量。局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁。

 

参考链接:

1、https://www.runoob.com/java/java-variable-types.html

2、https://www.runoob.com/w3cnote/inner-lambda-final.html

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值