[Java基础揉碎]final关键字

目录

介绍 

在某些情况下,程序员可能有以下需求,就会使用到final

final注意事项和讨论细节 

1) final修饰的属性又叫常量,一般用XX_XX_XX来命名

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

3) 如果final修饰的属性是静态的,则初始化的位置只能是 ①定义时 ②在静态代码块 不能在构造器中赋值(因为构造器是在创建对象的时候调用, 而我们静态变量的初始化实在类加载的时候就要给值的)

4) final类不能继承,但是可以实例化对象(可以创建对象 new对象)

5) 如果类不是final类,但是含有final方法,则该方法虽然不能重写,但是可以被继承

6)一般来说,如果一个类已经是final类了,就没有必要再将方法修饰成final方法(因为final类已经不能被继承也就不能被重写, 没必要再用final修饰)

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

8) final 和 static往往搭配使用,效率更高,不会进行类加载,底层编译器做了优化处理

9) 包装类(Integer,Double,Float, Boolean等都是final),String也是final类


 

介绍 

final 中文意思:最后的,最终的

final可以修饰类、属性、方法和局部变量

// 方法的形参也是可以的

在某些情况下,程序员可能有以下需求,就会使用到final

        1)当不希望类被继承时,可以用final修饰

        2)当不希望父类的某个方法被子类覆盖/重写(override)时,可以用final关键字修饰

        3)当不希望类的的某个属性的值被修改,可以用final修饰

        4)当不希望某个局部变量被修改,可以使用final修饰

final注意事项和讨论细节 

1) final修饰的属性又叫常量,一般用XX_XX_XX来命名
2) final修饰的属性在定义时,必须赋初值,并且以后不能再修改,赋值可以在如下位置之一[选择一个位置赋初值即可]:

        ①定义时:  public final double TAX_RATE=0.08;

        ②在构造器中

        ③在代码块中

 

3) 如果final修饰的属性是静态的,则初始化的位置只能是 ①定义时 ②在静态代码块 不能在构造器中赋值(因为构造器是在创建对象的时候调用, 而我们静态变量的初始化实在类加载的时候就要给值的)
4) final类不能继承,但是可以实例化对象(可以创建对象 new对象)
5) 如果类不是final类,但是含有final方法,则该方法虽然不能重写,但是可以被继承
6)一般来说,如果一个类已经是final类了,就没有必要再将方法修饰成final方法(因为final类已经不能被继承也就不能被重写, 没必要再用final修饰)
7) final不能修饰构造方法(即构造器)
8) final 和 static往往搭配使用,效率更高,不会进行类加载,底层编译器做了优化处理

// 只用static这么用的时候会进行类加载, 静态代码块被加载了 

//  final 和 static搭配使用时, 不会进行类加载

9) 包装类(Integer,Double,Float, Boolean等都是final),String也是final类

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/768599.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Android 内存优化】Koom核心内存指标分析

文章目录 源码Runtime.getRuntime()/proc/self/status/proc/meminfo 附总结 获取内存的指标有很多,假如我们要写一个用于监控APP内存泄漏的框架的话,主要获取哪些指标呢? 这篇文章来研究下KOOM里面获取到是哪些指标。 下面正文开始&#xff…

Spring Cloud五:Spring Cloud与持续集成/持续部署(CI/CD)

Spring Cloud一:Spring Cloud 简介 Spring Cloud二:核心组件解析 Spring Cloud三:API网关深入探索与实战应用 Spring Cloud四:微服务治理与安全 文章目录 一、Spring Cloud在CI/CD中的角色1. 服务注册与发现:自动化管理…

Java安全 反序列化(4) CC1链-LazyMap版

Java安全 反序列化(4) CC1链-LazyMap版 实验环境:存在漏洞的版本 commons-collections3.1-3.2.1 jdk 8u71之后已修复不可利⽤ 文章目录 Java安全 反序列化(4) CC1链-LazyMap版一.跟踪挖掘CC1_LazyMap原理二.完整CC1_Lazy版Poc 接着上一篇文章我们通过ChainedTransFormer实现任意…

Linux uustat命令教程:UUCP状态查询和控制(附案例详解和注意事项)

Linux uustat命令介绍 uustat(UUCP status inquiry and control)命令在Linux中用于显示关于UUCP系统的各种类型的状态信息。它也可以用于取消或重新激活由uucp或uux发出的请求。默认情况下,uustat显示所有排队等待调用用户的作业&#xff0c…

client-go中ListAndWatch机制,informer源码详解

文章首发地址: 学一下 (suxueit.com)https://suxueit.com/article_detail/s9UMb44BWZdDRfKqFv22 先上一张,不知道是那个大佬画的图 简单描述一下流程 client-go封装部分 以pod为例 、先List所有的Pod资源,然后通过已经获取的pod资源的最大版…

SQLiteC/C++接口详细介绍sqlite3_stmt类(八)

返回:SQLite—系列文章目录 上一篇:SQLiteC/C接口详细介绍sqlite3_stmt类(七) 下一篇: SQLiteC/C接口详细介绍sqlite3_stmt类(九) 27、sqlite3_column_int 函数 sqlite3_column_int 用于返…

0.2W超精密金属膜电阻器-陶瓷封装-塑封

高精度欧姆值,温度系数低 长期稳定性,无感设计 UPSC 欧姆范围:40 Ω 至 5 MΩ UPR 欧姆范围:10 Ω 至 5 MΩ 温度系数:2 ppm/C 至 25 ppm/C 符合 RoHS 规范 由EE1/10(RE55)成品高精密金属膜电阻器选配组装而成&am…

ubuntu20.04 编译瑞芯微rv1126问题集锦

1、camera_engine_rkisp is in the dependency chain of app_demo that has added it to its _DEPENDENCIES variable without selecting it or depending on it from Config.in. Stop. 解决方案: 注释:rv1126/buildroot/package/rockchip/app_demo/Con…

go-zero处理本地事务

go-zero处理本地事务, sqlx.SqlConn 提供了基础的事务机制,官方代码 var conn sqlx.SqlConnerr : conn.TransactCtx(context.Background(), func(ctx context.Context, session sqlx.Session) error {r, err : session.ExecCtx(ctx, "insert into user (id, na…

java数据结构与算法刷题-----LeetCode75. 颜色分类

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 文章目录 1. 双指针两次遍历2. 三指针 1. 双指针两次遍历 解题思路&#…

以行动激发消费活力,加多宝引领高品质消费浪潮

2024年“315”期间,加多宝携手全国多地市场监督管理局、消费者协会等单位,围绕今年“激发消费活力”主题,积极配合各地相关政府部门开展系列宣传活动,以实际行动呼吁切实保护消费者合法权益,共建诚信消费环境&#xff…

<商务世界>《第17课 餐桌礼仪禁忌》

1 习俗禁忌 中国人认为饮食与个人命运几乎是息息相关的,用饭时犯了禁忌,便会惹来衰运。例如吃鱼,当吃完了一面鱼身,不要用筷子把整条鱼翻转至另一面,他们认为若翻鱼时弄破鱼身,便意味著渔船会翻沉&#xf…

Python综合实战案例-数据清洗分析

写在前面: 本次是根据前文讲解的爬虫、数据清洗、分析进行的一个纵隔讲解案例,也是对自己这段时间python爬虫、数据分析方向的一个总结。 本例设计一个豆瓣读书数据⽂件,book.xlsx⽂件保存的是爬取豆瓣⽹站得到的图书数据,共 6067…

在fstab文件中配置UUID方式自动挂载数据盘、swap、目录(**)

linux如何挂在硬盘,自动挂载和手动挂载(详细说明)https://gitcode.csdn.net/65eedcea1a836825ed7a06f4.html 解决linux重启后磁盘挂载失效的问题 https://blog.csdn.net/sugarbliss/article/details/107033034 linux /etc/fstab 文件详细说…

前端并发控制

本文讲解Promise,callback,RxJS多种方式实现并发限制 1.Promise 目前来说,Promise是最通用的方案,一般我们最先想到Promise.all,当然最好是使用新出的Promise.allsettled。 下面简单介绍下二者的区别,假…

Android Audio相关

AudioManager AudioService的Bp端,调用AudioManager>AudioService(代码实现) AudioService 继承自IAudioService.Stub,为Bn端 AudioSystem AudioService功能实现都依赖于AudioSystem,AudioService通过AudioSys…

Attention Is All You Need若如爱因斯坦的相对论,Transformer模型则堪称E=MC^2之等量公式

Transformer模型已经成为当前所有自然语言处理NLP的标配,如GPT,Bert,Sora,LLama,Grok等。假如《Attention Is All You Need》类比为爱因斯坦的侠义相对论,Transformer模型则堪称EMC^2之等量公式。 看过论文…

[BT]BUUCTF刷题第6天(3.24)

第6天 Web [极客大挑战 2019]PHP Payload: O:4:"Name":3:{s:14:"%00Name%00username";s:5:"admin";s:14:"%00Name%00password";s:3:"100";}这道题考点是网站源码备份文件泄露和PHP反序列化,有篇介…

SpringBoot Starter解析

conditional注解解析 介绍 基于条件的注解作用: 根据是否满足某一个特定条件决定是否创建某个特定的bean意义: Springboot实现自动配置的关键基础能力 常见的conditional注解 ConditionalOnBean: 当容器中存在某个Bean才会生效ConditionalOnMissingBean: 不存在某个Bean才会…

管理自由,体验简单,使用安全 | 详解威联通全套多用户多权限管理方案【附TS-466C产品介绍】

管理自由,体验简单,使用安全 | 详解威联通全套多用户多权限管理方案【附TS-466C产品介绍】 哈喽小伙伴们好,我是Stark-C~。今天我们来解决一个之前评论区多次被提及的问题--多用户权限管理。 对于我们NAS用户来说,基本都会面临这…