当前位置: 首页 > news >正文

JAVA final详细介绍

一、介绍

final 中文意思:

最后的,最终的.

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

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

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

//如果我们要求A类不能被其他类继承
//可以使用final修饰 A类
​
final class A {}
class B extends A {}//错误

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

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

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

注意:

1.final必须在定义时初始化

2.final可修饰类、属性、方法

在Java中,final关键字可以用于以下场景:

  • 修饰类,表示该类不能被继承。

  • 修饰方法,表示该方法不能被子类重写。

  • 修饰变量(无论是实例变量、类变量或局部变量),表示该变量的值一旦赋值后就不能再改变。

二、重点

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

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

  1. 定义时:如 public final double TAX RATE=0.08:

  2. 在构造器中

  3. 在代码块中

3)如果final修饰的属性是静态的,则初始化的位置只能是

  1. 定义时

  2. 在静态代码块,不能在构造器中赋值。

4)final类不能继承,但是可以实例化对象。[A2类]

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

6)一般来说,如果一个类已经是final类了,就没有必要再将方法修饰成final方法

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

8)final 和 static 往往搭配使用,效率更高,底层编译器做了优化处理。

class Demo{public static final int i=16; static{System.out.println("你好~");}
}

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

相关文章:

JAVA final详细介绍

一、介绍 final 中文意思: 最后的,最终的. final 可以修饰类、属性、方法和局部变量, 在某些情况下,程序员可能有以下需求,就会使用到final: 1)当不希望类被继承时,可以用final修饰。 //如果我们要求A类不能被其他类继承 //可以使用fin…...

45、tomcat+课后实验

tomcat 1、tomcat tomcat和php一样,都是用来处理动态页面的。 tomcat也可以作为web应用服务器,开源的。 php .php tomcat .jsp nginx .html tomcat 是用Java代码写的程序,运行的是Java的web应用程序。 tomcat的特点和功能&#xff1a…...

设计模式的七大原则

1.单一职责原则 单一职责原则(Single responsibility principle),即一个类应该只负责一项职责。如类A负责两个不同职责:职责1,职责2。当职责1需求变更而改变A时,可能造成职责2执行错误,所以需要将类A的粒度分解为A1、…...

ThreeJS-3D教学十五:ShaderMaterial(noise、random)

ThreeJS-3D教学十四:ShaderMaterial(length、fract、step) 上面这篇主要是操作 fragmentShader 片元着色器,实现对物体颜色的修改,这次咱们来看下修改 vertexShader 顶点着色器,这个其实就是位移各个顶点的位置。 接下来我们先介绍下 noise 噪声函数(Perlin Noise、Sim…...

LeetCode 2974.最小数字游戏:排序+交换奇偶位

【LetMeFly】2974.最小数字游戏:排序交换奇偶位 力扣题目链接:https://leetcode.cn/problems/minimum-number-game/ 你有一个下标从 0 开始、长度为 偶数 的整数数组 nums ,同时还有一个空数组 arr 。Alice 和 Bob 决定玩一个游戏&#xff…...

使用vllIm部署大语言模型

使用vllm部署大语言模型一般需要以下步骤: 一、准备工作 1. 系统要求 - 操作系统:常见的 Linux 发行版(如 Ubuntu、CentOS)或 Windows(通过 WSL)。 - GPU 支持:NVIDIA GPU 并安装了适当的驱动程…...

静态搜索iOS动态链接函数的调用位置

静态搜索iOS动态链接函数的调用位置 可执行文件格式mach-O,是在苹果的操作系统 macOS 和 iOS 上使用的一种二进制文件格式。 在一些iOS安全扫描中,可能存在需要获取函数具体调用位置的需求,能指导用户更精确的定位漏洞。 现在以NSLog函数为例&#xff…...

【鸿蒙学习笔记】尺寸设置・layoutWeight・对子组件进行重新布局

官方文档:尺寸设置 目录标题 layoutWeight:对子组件进行重新布局 layoutWeight:对子组件进行重新布局 设置了layoutWeight属性的子元素与兄弟元素占主轴尺寸按照权重进行分配,忽略元素本身尺寸设置。 // 引入包名 import { http…...

vue实现表单输入框数字类型校验功能

vue实现表单输入框数字类型校验功能 1. 样式代码 <el-form-item label"订单总价"><el-input size"small" v-model"form.totalPrice" placeholder"请输入订单总价 正整数或者2位数小数" input"check(form.totalPric…...

JS登录页源码 —— 可一键复制抱走

前期回顾 https://blog.csdn.net/m0_57904695/article/details/139838176?spm1001.2014.3001.5501https://blog.csdn.net/m0_57904695/article/details/139838176?spm1001.2014.3001.5501 登录页预览效果 <!DOCTYPE html> <html lang"en"><head…...

Kithara与OpenCV (一)

Kithara使用 OpenCV 库 目录 Kithara使用 OpenCV 库简介需求和支持的环境构建 OpenCV 库使用 CMake 进行配置以与 Kithara 一起工作 使用 OpenCV 库设置项目运行 OpenCV 代码图像采集和 OpenCV自动并行化限制和局限性1.系统建议2.实时限制3.不支持的功能和缺失的功能4.显示 Ope…...

什么是软件定义安全SDSec

一、软件定义安全SDSec产生的背景 软件定义安全&#xff08;Software Defined Security&#xff0c;SDSec&#xff09;的产生背景主要源于传统网络安全防护方法在面对复杂网络环境时的不适应性&#xff0c;以及软件定义网络&#xff08;SDN&#xff09;技术的发展和应用。 SD…...

【C语言】C语言可以做什么?

目录 1. 操作系统开发1.1 操作系统内核1.2 设备驱动程序1.3 系统工具和实用程序 2. 嵌入式系统2.1 微控制器编程2.2 传感器和执行器控制2.3 消费电子产品 3. 应用程序开发3.1 图形用户界面应用3.2 游戏开发3.3 多媒体处理 4. 网络编程4.1 网络协议实现4.2 服务器和客户端程序4.…...

WordPress 主题技巧:给文章页增加“谁来过”模块。

模块功能&#xff1a; 我个人目前在做一个电影类的网站&#xff0c;在开发文章页的模版时候&#xff0c;突然觉得给文章页增加一个“谁对本电影感兴趣”的功能模块可能会比较有趣&#xff0c;这个功能有点类似于‘足迹’的感觉&#xff0c;用户可以通过这个功能&#xff0c;发…...

【vue组件库搭建07】Vitest单元测试

vitest官网 vue-test-utils 我们的测试框架选择的是 Vitest 和 vue-test-utils。两者的关系为&#xff1a; Vitest 提供测试方法&#xff1a;断言、Mock 、SpyOn 等方法。vue-test-utils: 挂载和渲染组件&#xff1a; Vue Test Utils 允许您在隔离中挂载组件&#xff0c;这意…...

JSONObject和Map<String, Object>的转换

一、前言 Java开发中出参返回和入参传入更灵活的方法是使用Map<String, Object>入参或出参&#xff0c;或者使用JSONObject。 1、好处&#xff0c;参数可变&#xff0c;对接口扩展性很友好。 public ResponseData<WXModelDTO> getUserInfo(RequestBody Map<…...

C# 建造者模式(Builder Pattern)

建造者模式&#xff08;Builder Pattern&#xff09;&#xff0c;也被称为生成器模式&#xff0c;是一种对象构建模式&#xff0c;旨在将复杂对象的构建过程与表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。这种模式特别适用于构建具有多个组成部分的复杂对象&am…...

初阶数据结构速成

本篇文章算是对初阶数据结构的总结&#xff0c;内容较多&#xff0c;请耐心观看 基础概念部分 顺序表 线性表&#xff08; linear list &#xff09;是n个具有相同特性的数据元素的有限序列。 线性表是⼀种在实际中⼴泛使 ⽤的数据结构&#xff0c;常⻅的线性表&#xff1a;…...

nx上darknet的使用-目标检测-在python中的使用

1 内置的代码 在darknet中已经内置了两个py文件 darknet_video.py与darknet_images.py用法类似&#xff0c;都是改一改给的参数就行了&#xff0c;我们说一下几个关键的参数 input 要预测哪张图像weights 要使用哪个权重config_file 要使用哪个cfg文件data_file 要使用哪个da…...

Python高级(四)_内存管理

Python高级-内存管理 第四章 内存管理 1、对象池 小整数池 系统默认创建好的,等着你使用 概述:整数在程序中的使用非常广泛,Python为了优化速度,使用了小整数对象池,避免为整数频繁申请和销毁内存空间。Python 对小整数的定义是 [-5, 256] ,这些整数对象是提前建立好的…...

【Midjourney双色调风格终极指南】:20年视觉算法专家亲授3步精准复刻电影级Duotone效果

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;双色调美学的视觉起源与Midjourney适配性解析 双色调&#xff08;Duotone&#xff09;并非现代数字设计的发明&#xff0c;其视觉基因可追溯至19世纪的凹版印刷工艺——通过两块独立印版叠加单色油墨&#xf…...

3步搞定Photoshop图层批量导出:高效工具终极指南

3步搞定Photoshop图层批量导出&#xff1a;高效工具终极指南 【免费下载链接】Photoshop-Export-Layers-to-Files-Fast This script allows you to export your layers as individual files at a speed much faster than the built-in script from Adobe. 项目地址: https://…...

Midjourney材质质感翻车实录(金属发灰/皮革失真/玻璃无折射):基于1372组AB测试的材质Token黄金配比公式

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;Midjourney材质表现方法论总纲 Midjourney 作为以语义驱动的图像生成模型&#xff0c;其对材质&#xff08;Texture&#xff09;的表达并非依赖显式参数控制&#xff0c;而是通过提示词&#xff08;Prompt&…...

Midjourney V6色彩失控?3步锁定prompt权重偏差,92%用户忽略的--s参数与--stylize协同机制揭秘

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Midjourney V6色彩失控的本质归因 Midjourney V6 的色彩表现相较前代出现显著波动&#xff0c;高频出现色相偏移、饱和度塌陷与明度断裂等现象。这种“色彩失控”并非随机噪声&#xff0c;而是模型底层…...

手把手教你用Google Cloud语音API为Android App加个“耳朵”和“嘴巴”(附免费额度避坑指南)

实战指南&#xff1a;在Android应用中集成Google Cloud语音技术 想象一下&#xff0c;你的Android应用能够听懂用户说话&#xff0c;还能用自然流畅的语音回应——这不再是科幻电影里的场景。借助Google Cloud的语音API&#xff0c;即使是独立开发者也能快速为应用添加专业的语…...

爬虫实战复盘:山东政务噪声数据逆向爬取踩坑全记录

爬虫实战复盘&#xff1a;山东政务噪声数据逆向爬取踩坑全记录 前言 近期在做全国各省市环境噪声实时数据爬虫、清洗、入库标准化项目&#xff0c;已经稳定跑通北京&#xff08;静态HTML&#xff09;、天津&#xff08;SM3国密签名接口&#xff09;两大站点。今天攻坚山东省噪声…...

Vivado IP核避坑指南:Distributed Memory Generator里COE文件初始化与复位信号的那些‘坑’

Vivado分布式存储器IP核实战避坑&#xff1a;COE初始化与复位信号的深度解析 在FPGA开发中&#xff0c;分布式存储器&#xff08;Distributed Memory Generator&#xff09;因其灵活性和低延迟特性&#xff0c;常被用于实现小型查找表、寄存器堆等场景。然而&#xff0c;当涉及…...

聊聊 KaiwuDB 的开源压测工具:kwdb-tsbs 上手分享

上一篇我们聊了一下通用 TSBS 工具《聊一聊TSBS&#xff1a;时序数据库跑分&#xff0c;为啥大家都用它&#xff1f;》 今天想就一家国内厂商开源的TSBS工具展开讲讲。怎么看这件事儿&#xff0c;怎么用&#xff0c;以及好不好用。 最近一直在玩时序数据库&#xff0c;做性能对…...

从YOLOv5实战反推:手把手在WSL2里搭建PyTorch 1.12 + CUDA 11.3 环境(附国内镜像加速)

逆向工程视角&#xff1a;在WSL2中构建YOLOv5专属PyTorch 1.12CUDA 11.3开发环境 当目标检测项目的截止日期迫在眉睫&#xff0c;却卡在环境配置环节&#xff0c;这种体验对开发者而言无异于噩梦。本文将以结果导向的逆向思维&#xff0c;从YOLOv5的最终运行需求出发&#xff0…...

Hyperf 高并发的庖丁解牛

它的本质是&#xff1a;**Hyperf 的高并发并非来自 PHP 语言本身的计算速度&#xff0c;而是来自对 I/O 等待时间 (I/O Wait Time) 的极致利用。它通过 Swoole/Swow 扩展 将传统的 同步阻塞 (Sync-Blocking) 模式转变为 异步非阻塞 (Async-Non-blocking) 模式&#xff0c;并利用…...