final 中文翻译为 最终的,在java中也是较为常用的关键字之一。

在java 中 final 关键字可以修饰  类、方法、变量

  • final 修饰在类上,则表示该类不能被继承,如果里面的成员变量没有被final 修饰,在该变量是可变的 。使用场景:该类不想被继承或者该类中的方法都不想被重写
  • final 修饰在方法上,则表示该方法在继承的时候不能被重写。
  • final 修饰在类的成员变量上,该变量必须在声明、构造方法、类初始化代码块(这个不常用到) 这个三个地方选择一种来初始化。
  • final 修饰在类的静态变量上,该变量必须在声明或类的静态方法块中来初始化。
  • final 修饰在局部变量上,则变量必须在声明或使用之前被初始化。
  • final 修饰在对象上,则指向这个对象的引用不能被修改,但是指向的内容还是可以变化的(前提这个属性不是被final修饰的)。
  • final 不能修饰在构造方法上。

1. final 修饰在类上,则该类不能被继承

但是final修饰的是类,而没有具体到修饰类中的属性,所以类中的属性还是可以随意更改的。

2.fianl 修饰方法,则表示该方法不能被重写

3.final修饰成员变量的时候,该成员变量必须在声明的时候或者在构造方法中初始化

4. final修饰局部变量的时候,该变量必须在声明的时候或者使用之前初始化

final的作用总结:

  • 类防止被继承、方法防止被重写、变量防止被修改。
  • 天生是线程安全的,而不需要额外的同步开销。(为啥说是线程安全的: 一个对象中有某个属性不是被final修饰的,如果要是在多线程对这个对象的属性同时进行修改,这点就会出现线程安全的问题。如果里面的成员变量(基本类型)都被final修饰,多线程环境中都不会进行修改,所以说不会发生线程安全的问题,也不需要加一些线程同的逻辑)

java中final关键字的使用相关推荐

  1. ACAC java中final关键字

    java中final关键字/*1.final关键字:java 中的一个关键字,最终的,不可变的可以修饰变量以及方法,还有类等.1.修饰的方法,修饰的类无法被覆盖,无法被重写,无法被继承写的方法不希望被 ...

  2. Java中final关键字的简介说明

    下文笔者讲述java中final关键字的功能简介说明,如下所示 final关键字功能 final关键字修饰的类.方法.变量都会产生特殊的意义 如:final关键字修饰过后的类不能被子类继承final关 ...

  3. [转载] Java中final关键字

    参考链接: Java中的final关键字 文章目录 1 final关键字1.1 final修饰类1.2 final修饰方法1.3 final修饰属性---常量1.3.1 final修饰普通数据类型的成 ...

  4. 关于Java中final关键字的详细介绍

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

  5. Java中final关键字的几种用法

    在java的关键字中,static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构.下面大家跟随动力节点java ...

  6. java中final关键字、权限修饰符、内部类(成员内部类、局部内部类、匿名内部类)

    final关键字: final表示最终的不可变的,在java中可以用来修饰类或方法.局部变量.成员变量. // 1.final关键字修饰类需要放在class关键字前面,表示不可变的类,需要注意,这里表 ...

  7. final关键字_夯实基础:Java中final关键字的几种用法

    导语 在java的关键字中,static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构. 关于static请查 ...

  8. Java中final关键字的作用与用法

    一.特点 1.final从字面上理解含义为"最后的,最终的". 2.final可以用来修饰变量(包括类属性.对象属性.局部变量.形参),方法(包括类方法和对象方法)以及类. 二.用 ...

  9. Java中final关键字的作用

    final关键字可以用来修饰引用.方法和类. 1.用来修饰一个引用 如果引用为基本数据类型,则该引用为常量,该值无法修改: 如果引用为引用数据类型,比如对象.数组,则该对象.数组本身可以修改,但指向该 ...

最新文章

  1. 转Python 标准库 urllib2 的使用细节
  2. 群晖NAS百度云Docker客户端下载目录没有权限的问题解决
  3. python实现输出日历_python实例9:输出时间日期和当月日历
  4. 基于Anaconda安装GPU版PyTorch深度学习开发环境
  5. Python高级——迭代器与生成器
  6. hhvm php5.6,PHP_5.5_/_PHP5.6_/_PHP-NG_和_HHVM_哪个性能更好?
  7. 【成功不是等来的】生意不好问人不如问己!谈真实经验!
  8. 深入理解对象的数据属性与访问器属性及属性间相互转换
  9. CROC-MBTU 2012, Elimination Round (ACM-ICPC) H DP题目
  10. kubernetes英语怎么读_小学三年级英语怎么学
  11. 2015百度之星资格赛.1004放盘子(数学推导)
  12. charles安装免费版
  13. 小米路由器安装花生壳实现外网映射
  14. XCode 苹果开发者账号,无法本地编译项目,问题所在 The app identifier “xxxx“ cannot be registered to your development team
  15. 【论文】GC-MC论文相关
  16. IAR 配置ICF跟项目走
  17. 统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数
  18. 谁发明了计算机科学bug,为什么计算机故障被称为“bug”
  19. android数据库升级兼容老版本吗,成功升级后Android升级数据库不更新数据库版本...
  20. ISO20000培训课

热门文章

  1. 2013汇总计算 广联达gcl_完整工程量计算书分享:广联达+EXCEL计算表+电子+工程模板等赠送...
  2. visual basic从入门到精通第三版cd_C++从零到精通,这才是你需要的书单!
  3. python中变量的作用域有几种_Python中变量的作用域(variable scope)
  4. sql text转image_[转]故障分析 | 记一次 MySQL 主从双写导致的数据丢失问题
  5. java 继承 接口 练习,java:面向对象-抽象类、继承、接口结合练习
  6. java多线程总结图_Java多线程总结之Queue
  7. ceph rgw java_java 使用amazon s3接口访问本地ceph rgw
  8. linux系统编程需要什么,若想成为一名Linux下编程高手,必须能对各种系统调用有透彻的了解...
  9. 一张象限图引发的血案
  10. JavaScript 编程精解 中文第三版 零、前言