[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类

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

chatgpt和 github copilot chat哪个更强

chatgpt大家应该都不陌生 ChatGPT 是由 OpenAI 开发的一种基于 GPT(生成式预训练模型)的聊天机器人。它可以生成语言上下文相关的响应,从而进行自然语言对话。ChatGPT 利用大规模的语言数据进行预训练,并通过微调或在线学习来适应…

【】(综合练习)博客系统

在之前的学些中,我们掌握了Spring框架和MyBatis的基本使用,接下来 我们就要结合之前我们所学的知识,做出一个项目出来 1.前期准备 当我们接触到一个项目时,我们需要对其作出准备,那么正规的准备是怎么样的呢 1.了解需求…

vue3项目初始化

初始化项目newsapp VSCode 打开终端,newsapp项目目录,可自定义 vue create newsapp 有提示“因为在此系统上禁止运行脚本”的话,请执行 set-ExecutionPolicy RemoteSigned 执行后再重复执行vue create newsapp 注意选择Vue 3版本 测试项…

【案例分析】入职第一天,如何让同事对我刮目相看

背景 在办理入职的第一天,遇到测试同事无奈且慌张的报出一个问题:拷机过程中,stTsp进程重启了。可能因为大家都比较忙,也可能因为面试过程中,我说自己比较喜欢解决问题。领导就让我帮忙一起看看。 呃,此时…

配置java8和java11以及输入version命令没反应问题

电脑重置重新安装java8和java11记录一下供自己观看 安装过程掠过我自己能看懂就行 需要记录一下 因为JDK11以后Oracle把JRE集成到了JDK中,在安装JDK11及更高版本的JDK时,默认是不会自动安装JRE的。在jdk11的安装目录下打开命令行窗口或者shift鼠标右键…

异步处理 (vue async和await)

出现这种情况可以是加载顺序的问题,加载没有完成就是显示数据了 试试 async和await async beforeOpen(done, type) {if (["edit", "view"].includes(type)) {await getDetail(this.form.id).then((res) > {this.form res.data.data;conso…

了解Spring:Java开发的利器

Spring是一款开源的轻量级Java开发框架,旨在提高开发人员的效率和系统的可维护性。本文将介绍Spring的基本概念、使用优势、设计模式以及与Spring MVC和Spring Boot的关联。 什么是Spring? Spring是一款开源的轻量级Java开发框架,它由多个模…

购买腾讯云服务器需要多少钱?价格表查询

腾讯云服务器多少钱一年?61元一年起。2024年最新腾讯云服务器优惠价格表,腾讯云轻量2核2G3M服务器61元一年、2核2G4M服务器99元一年可买三年、2核4G5M服务器165元一年、3年756元、轻量4核8M12M服务器646元15个月、4核16G10M配置32元1个月、312元一年、8核…

APP信息收集思路总结(反代理,反虚拟机,反证书校验思路整理)

前言 本文是我在学习过程中的总结,希望可以被指导提议指正。 APP概况 app跟一个网站很像。 网站分为前端后端。 app就好像网站的前端一样,app不需要浏览器,而前端需要浏览器。 他们都需要服务器,也就是说,进行we…

bevformer转模型经验(需要时序tranformer所有模型都可以参考)

先上bevformer的网络结构图 不难发现,他有两个输入。当前的环视图和历史bev。历史bev是通过历史环视图生成的。也就是说在生成bev特征提取模型这部分被使用了两次。在装模型时候,需要作以下工作: 1 bev特征提取模型单独提出来,转…

win多开微信

有时候需要在win下多开微信,但是微信又不支持这个功能。 正常情况下,当微信弹出登录对话框时,再次点击微信exe,此时不会再弹出一个新的微信对话框,估计微信是做了只弹一个窗的判断。但是,有时点击微信时&a…

哪本书最了解孩子?跟《米小圈上学记》一起做孩子的“引路人”!

孩子是发展中的人,需要家长的陪伴,孩子的身心发展是有规侓的,是处于发展过程中的人。我们要学会尊重孩子的发展,从兴趣出发,关注孩子的成长。但是,家长不可能无时无刻都能陪在孩子身边,他需要一…

es bulk批量操作简单实例

(1)定义 bulk允许在单个步骤中进行多次create、index、update或delete请求。 bulk与其他的请求体格式稍有不同,如下所示: { action: { metadata }}\n { request body }\n { action: { metadata }}\n { request body …

element-plus中el-table利用复选框删除当前行

思路:1.利用复选框的selection-change事件来监听复选框发生的变化,触发该事件 2.给删除添加点击事件,定义一个空数组,通过forEach()方法遍历tableData数据,使用filter()方法来过滤掉未选中行数,将过滤出来的…

java-基于springboot+vue实现的旅游信息管理系统功能介绍

开发工具:IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架:ssm、Springboot 前端:Vue、ElementUI 关键技术:springboot、SSM、vue、MYSQL、MAVEN 数据库工具:Navicat、SQLyog 项目关键技术 1、JSP技术 JSP(Java…

苍穹外卖笔记

苍穹外卖 DAY01nginx反向代理MD5加密yapi进行接口导入Swagger介绍 DAY02新增员工需求分析和设计写相关代码测试(1. 后端文档测试 2. 前后端联调代码完善 员工分页查询DAY01 02涉及到的知识 DAY01 nginx反向代理 MD5加密 拓展:spring security jwt 提供了更强大灵…

新能源汽车充电桩消防安全视频智能可视化监管建设方案

一、方案背景 据应急管理部门统计公布的数据显示,仅2023年第一季度,新能源汽车自燃率就上涨了32%,平均每天就有8辆新能源汽车发生火灾(含自燃)。在已查明起火原因中,58%源于电池问题,19%源于碰…

摘录笔记——2024年3月22日

目录 一、背景 1.1 新人的选择困局 1.2 高人才密度环境下普通员工的成长效率困局 1.3 业务发展和个人成长的二元对立困局 1.4 中年打工人低费效比引发的职场生涯终结困局 二、人的本质 2.1 人的本质的定义 2.2 由“人的本质”引出的几个关键过程 2.2.1 认知指引实践&a…

常用类一(包装类)

目录 基本数据类型的包装类 包装类基本知识 包装类的用途 自动装箱和拆箱 自动装箱: 自动拆箱: 包装类的缓存问题 基本数据类型的包装类 八种基本数据类型并不是对象,为了将基本类型数据和对象之间实现互 相转化,JDK 为每一…

【新手教程】mmselfsup训练教程及常见报错处理

mmselfsup教程 1.安装mmselfsup2.了解文件结构与配置3.训练常见报错1.报错:FileNotFoundError: [Errno 2] No such file or directory:data/imagenet/train/./train/n04311004/images/n04311004_194.JPEG2.报错:报错ImportError: /mmcv/_ext.cpython-38-…