1.final 关键字

final关键字主要用在三个地方:变量、方法、类。

  • final修饰变量:final修饰一个类时,表明这个类不能被继承。
  • final修饰方法:final修饰方法,方法不可以重写,但是可以被子类访问 【前提:方法不是 private 类型】。
  • fainal修饰类:如果被final修饰的是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。

2.final修饰变量(成员变量、局部变量)

首先,变量分为成员变量和局部变量

2.1 final修饰成员变量
成员变量必须在定义时或者构造器中进行初始化赋值

public class FinalAndVariable {public int t; //编译成功public final int b; //编译失败public final int c = 1; //编译成功
}

在构造方法中将成员变量进行初始化,定义成员变量的时候就可以不用初始化

public class FinalAndVariable {public int t;public final int b; //编译成功public final int c = 1; //编译成功public FinalAndVariable() {  //构造方法b=2;  //在构造方法中将成员变量b进行初始化}
}

2 .2final修饰局部变量
只需要保证在使用之前被初始化赋值即可

3.final变量和普通变量的区别

当final变量修饰基本数据类型以及String类型时,编译期间能知道它的确切值时,编译器会把它当做编译期常量使用。

被final修饰的引用变量一旦初始化赋值之后指向的对象不可变但该对象的内容可变。

4.final与static的藕断丝连

static的使用始终离不开final字眼,二者可谓藕断丝连,常常繁见

static修饰的在类加载的时候就加载完成了(初始化),而且只会加载一次也就是说初始化一次,所以不会发生变化!
final修饰基本数据类型的变量时,则其数值一旦在初始化之后便不能更改。

JAVA知识基础(五):深入理解final关键字相关推荐

  1. Java面试题,深入理解final关键字

    final关键字 final的简介 final可以修饰变量,方法和类,用于表示所修饰的内容一旦赋值之后就不会再被改变,比如String类就是一个final类型的类. final的具体使用场景 fina ...

  2. 【Scala教程】如何在已掌握的Java知识基础上快速上手Scala?【个人学习记录】

    如何在已掌握的Java知识基础上学习Scala 前言 正文开始! 1. 编译运行 2. 声明变量 3. 输出 4. 显式指定变量类型 5. 范围区间 6. 写入文本文件 7. 读取文本文件 8. if ...

  3. JAVA基础知识(四):final关键字

    final关键字可以用于成员变量.本地变量.方法以及类. 2. final成员变量必须在声明的时候初始化或者在构造器中初始化,否则就会报编译错误. 3. 你不能够对final变量再次赋值. 4. 本地 ...

  4. Java基础---代码块和final关键字

    代码块 概念:用{}括起来的一段代码,在不同的位置有不同的名称,不同的作用,不同 的执行时机. 局部代码块 静态代码块 构造代码块(初始代码块.动态代码块) 局部代码块 位置:方法中 作用:限定局部变 ...

  5. 深入理解final关键字

    Java中的final关键字非常重要,它可以应用于类.方法以及变量.这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使 ...

  6. 程序员你真的理解final关键字吗?

    文章目录 1.修饰类 2.修饰方法 3.修饰变量 4.final变量修饰变量(成员变量.局部变量) 4.1 final修饰成员变量: 4.2 final修饰局部变量: 5.final变量和普通变量的区 ...

  7. java本地方法不能是final_Java final关键字

    首页 > 基础教程 > 关键字 > final关键字 Java final关键字 简介 final是java的关键字,它所表示的是"这部分是无法修改的".不想被改 ...

  8. JAVA知识基础(三):修饰符

    JAVA中根据修饰对象的不同可以分为类修饰符.方法修饰符.变量修饰符三类,其中每种修饰符又可以单独分成两类:访问修饰符和非访问修饰符.为了便于理解,本文以访问和非访问的角度展开. 1.访问修饰符 访问 ...

  9. Java知识总结(五)

    JAVA BIO/NIO 同步 发起一个请求或任务,被调用者在未完成请求或任务前,不会返回结果. 需要一直等待该请求返回或任务完成反馈的结果,在这期间不能够去做其他的事情. 比如:你打电话给书店老板询 ...

最新文章

  1. python中文解释-python是解释型语言么
  2. 在Linux系统里安装Virtual Box的详细步骤
  3. AAAI 2018论文解读 | 基于置信度的知识图谱表示学习框架
  4. [算法笔记] 爬楼梯
  5. Linux 的发展历史,设计哲学和一些常用的术语介绍
  6. 信息学奥赛一本通(1175:除以13)
  7. 响应式多终端挖掘机机械设备展示类网站模板
  8. 关于vs08生成解决方案慢的解决方法
  9. 郑传华:微商快速赚钱108招
  10. 程序员心中的“女神”
  11. linux更换浏览器,ubuntu 默认浏览器换Chrome 是正确的选择
  12. 个人所得税分几个等级
  13. android 修改双卡铃声,Android 修改系统来电铃声
  14. 【知识图谱问答】DBpedia介绍
  15. CSS设置阴影样式大全 包含所有样式 有图有代码
  16. 多可文档管理迁移说明
  17. 微信小程序 图片验证码展示
  18. [Linux] Bash中大括号和小括号的使用
  19. 量子计算与量子信息之量子信息概述
  20. 华为HarmonyOS 鸿蒙,华为鸿蒙OS系统规划曝光,原来国产自主研发系统已经如此强大...

热门文章

  1. python三维模型_python三维模型
  2. 星外主机销售系统源码_业务员大客户销售订货订单管理系统源码开发外包解析...
  3. Java中运用数组的四种排序方法_JAVA中运用数组的四种排序方法
  4. ajax中res和req,javascript – 来自AJAX调用的res.redirect
  5. 中石油《计算机应用基础》,2017中国石油大学《计算机应用基础》第3阶段在线作业.doc...
  6. 寻路机器人单片机程序示例_C51独立按键的识别示例程序
  7. android 闪存软件测试,手机为什么这么卡:闪存I/O测试AndroBench
  8. 校验html输入值为电话号码,js验证输入是否为手机号码或电话号码示例
  9. JVM思维导图、正则表达式符号图、企业内部开发流程图
  10. android设置输入框输入字符限制,Android EditText限制输入字符的方法总结