java中final关键字的使用
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关键字的使用相关推荐
- ACAC java中final关键字
java中final关键字/*1.final关键字:java 中的一个关键字,最终的,不可变的可以修饰变量以及方法,还有类等.1.修饰的方法,修饰的类无法被覆盖,无法被重写,无法被继承写的方法不希望被 ...
- Java中final关键字的简介说明
下文笔者讲述java中final关键字的功能简介说明,如下所示 final关键字功能 final关键字修饰的类.方法.变量都会产生特殊的意义 如:final关键字修饰过后的类不能被子类继承final关 ...
- [转载] Java中final关键字
参考链接: Java中的final关键字 文章目录 1 final关键字1.1 final修饰类1.2 final修饰方法1.3 final修饰属性---常量1.3.1 final修饰普通数据类型的成 ...
- 关于Java中final关键字的详细介绍
Java中的final关键字非常重要,它可以应用于类.方法以及变量.这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使 ...
- Java中final关键字的几种用法
在java的关键字中,static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构.下面大家跟随动力节点java ...
- java中final关键字、权限修饰符、内部类(成员内部类、局部内部类、匿名内部类)
final关键字: final表示最终的不可变的,在java中可以用来修饰类或方法.局部变量.成员变量. // 1.final关键字修饰类需要放在class关键字前面,表示不可变的类,需要注意,这里表 ...
- final关键字_夯实基础:Java中final关键字的几种用法
导语 在java的关键字中,static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构. 关于static请查 ...
- Java中final关键字的作用与用法
一.特点 1.final从字面上理解含义为"最后的,最终的". 2.final可以用来修饰变量(包括类属性.对象属性.局部变量.形参),方法(包括类方法和对象方法)以及类. 二.用 ...
- Java中final关键字的作用
final关键字可以用来修饰引用.方法和类. 1.用来修饰一个引用 如果引用为基本数据类型,则该引用为常量,该值无法修改: 如果引用为引用数据类型,比如对象.数组,则该对象.数组本身可以修改,但指向该 ...
最新文章
- 转Python 标准库 urllib2 的使用细节
- 群晖NAS百度云Docker客户端下载目录没有权限的问题解决
- python实现输出日历_python实例9:输出时间日期和当月日历
- 基于Anaconda安装GPU版PyTorch深度学习开发环境
- Python高级——迭代器与生成器
- hhvm php5.6,PHP_5.5_/_PHP5.6_/_PHP-NG_和_HHVM_哪个性能更好?
- 【成功不是等来的】生意不好问人不如问己!谈真实经验!
- 深入理解对象的数据属性与访问器属性及属性间相互转换
- CROC-MBTU 2012, Elimination Round (ACM-ICPC) H DP题目
- kubernetes英语怎么读_小学三年级英语怎么学
- 2015百度之星资格赛.1004放盘子(数学推导)
- charles安装免费版
- 小米路由器安装花生壳实现外网映射
- XCode 苹果开发者账号,无法本地编译项目,问题所在 The app identifier “xxxx“ cannot be registered to your development team
- 【论文】GC-MC论文相关
- IAR 配置ICF跟项目走
- 统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数
- 谁发明了计算机科学bug,为什么计算机故障被称为“bug”
- android数据库升级兼容老版本吗,成功升级后Android升级数据库不更新数据库版本...
- ISO20000培训课
热门文章
- 2013汇总计算 广联达gcl_完整工程量计算书分享:广联达+EXCEL计算表+电子+工程模板等赠送...
- visual basic从入门到精通第三版cd_C++从零到精通,这才是你需要的书单!
- python中变量的作用域有几种_Python中变量的作用域(variable scope)
- sql text转image_[转]故障分析 | 记一次 MySQL 主从双写导致的数据丢失问题
- java 继承 接口 练习,java:面向对象-抽象类、继承、接口结合练习
- java多线程总结图_Java多线程总结之Queue
- ceph rgw java_java 使用amazon s3接口访问本地ceph rgw
- linux系统编程需要什么,若想成为一名Linux下编程高手,必须能对各种系统调用有透彻的了解...
- 一张象限图引发的血案
- JavaScript 编程精解 中文第三版 零、前言