final static 中是什么final static联合使用呢

final static 联合使用详解

final 和 static 在 Java 中经常一起使用,主要用来定义类级别的常量。这种组合具有两者的特性:

基本用法

public class Constants {// 典型的 final static 常量定义public static final double PI = 3.141592653589793;public static final int MAX_CONNECTIONS = 100;public static final String APPLICATION_NAME = "MyApp";
}

联合使用的特点

  1. 不可变性 (final)

    • 值一旦初始化后不能被修改

  2. 类级别共享 (static)

    • 所有实例共享同一个变量

    • 可以直接通过类名访问,无需创建实例

  3. 命名惯例

    • 通常使用全大写字母,单词间用下划线分隔

    • 这是 Java 中常量的标准命名方式

初始化时机

  1. 直接初始化

    public static final int TIMEOUT = 30; // 直接初始化
  2. 静态代码块初始化

    public static final String CONFIG_FILE;static {CONFIG_FILE = loadConfigFile(); // 复杂初始化逻辑
    }

内存特性

  • 由于是 static,只在内存中存在一份

  • 由于是 final,JVM 可以进行优化,可能内联这些值

典型应用场景

  1. 数学/物理常量

    public static final double EULER_NUMBER = 2.71828;
  2. 配置参数

    public static final int MAX_LOGIN_ATTEMPTS = 5;
  3. 枚举替代方案 (在Java 5之前)

    public static final int STATUS_ACTIVE = 1;
    public static final int STATUS_INACTIVE = 0;
  4. 单例模式实现

    public class Singleton {private static final Singleton INSTANCE = new Singleton();private Singleton() {}public static Singleton getInstance() {return INSTANCE;}
    }

注意事项

  1. 线程安全final static 变量的初始化是线程安全的

  2. 编译时常量:如果使用基本类型或String直接量初始化,会被编译器视为编译时常量

    public static final int VERSION = 1;  // 编译时常量
    public static final long TIMESTAMP = System.currentTimeMillis(); // 不是编译时常量
  3. 不可变对象:对于引用类型,final 只保证引用不变,对象内容仍可能改变

    public static final List<String> NAMES = new ArrayList<>();
    // 可以执行 NAMES.add("Alice"); 虽然不推荐这样设计

这种组合是Java中定义常量的标准方式,广泛应用于各种框架和库中。

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

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

相关文章

1.1 道路结构特征

1.1 道路结构特征 1.城市道路分类 道路网的地位、交通功能、沿线的服务功能。快速路 15 30主干路 15 30次干路 15 20支路 10 20 10(20)沥青路面、水泥混凝土路面、砌块路面沥青路面:沥青混凝土、沥青贯入式、沥青表面处治。沥青混凝土各种等级、沥青贯入式和沥青表面处治支路…

C++如何使用调试器(如GDB、LLDB)进行程序调试保姆级教程(2万字长文)

C++作为一门高性能、接近底层的编程语言,其复杂性和灵活性为开发者提供了强大的能力,同时也带来了更高的调试难度。与一些高级语言不同,C++程序往往直接操作内存,涉及指针、引用、多线程等特性,这些都可能成为错误的温床。例如,一个未初始化的指针可能导致程序崩溃,而一…

vite+vue构建的网站项目localhost:5173打不开

原因&#xff1a;关掉了cmd命令提示符&#xff0c;那个端口就没有被配置上&#xff0c;打开就是这样的。 解决方法&#xff1a;重新在工作目录下打开cmd&#xff0c;输入npm run dev重新启动项目。 重新出现这样的界面说明已经成功启动项目&#xff0c;再次在浏览器中刷新并输入…

自主可控鸿道Intewell工业实时操作系统

鸿道Intewell工业实时操作系统是东土科技旗下科东软件自主研发的新一代智能工业操作系统&#xff0c;以下是相关介绍&#xff1a; 系统架构 -Intewell-C全实时构型&#xff1a;设备上只运行自研RTOS的全实时系统&#xff0c;适用于有功能安全认证需求的实时控制场景&#xf…

将大语言模型(LLM)应用于自动驾驶(ADAS)中的几个方向,及相关论文示例

主要方法集中在如何利用LLM的强大推理能力和语言理解能力来增强自动驾驶系统的感知、决策和规划能力。以下是几种典型的方法和思路&#xff1a; 1. 基于LLM的驾驶决策与规划 方法&#xff1a;将LLM作为驾驶决策的核心模块&#xff0c;利用其强大的推理能力生成驾驶行为或轨迹…

rt-linux下的D状态的堆栈抓取及TASK_RTLOCK_WAIT状态

一、背景 在之前的博客 缺页异常导致的iowait打印出相关文件的绝对路径-CSDN博客 里的 2.1 一节里的代码&#xff0c;我们已经有了一个比较强大的抓取D状态和等IO状态超过阈值的waker和wakee的堆栈状态的内核模块。在之前的博客 增加等IO状态的唤醒堆栈打印及缺页异常导致iowa…

【Redis】zset类型

目录 1、介绍2、底层实现【1】压缩列表【2】跳跃表哈希表 3、常用命令 1、介绍 有序集合结合了集合和有序列表的特性&#xff0c;每个元素都会关联一个分数&#xff0c;Redis正是通过这个分数来为集合中的成员进行排序。 2、底层实现 【1】压缩列表 适用条件 1、元素数量 ≤…

ZeroGrasp:零样本形状重建助力机器人抓取

25年4月来自CMU、TRI 和 丰田子公司 Woven 的论文“ZeroGrasp: Zero-Shot Shape Reconstruction Enabled Robotic Grasping”。 机器人抓取是具身系统的核心能力。许多方法直接基于部分信息输出抓取结果&#xff0c;而没有对场景的几何形状进行建模&#xff0c;导致运动效果不…

AI大模型从0到1记录学习 linux day21

第 1 章 Linux入门 1.1 概述 1.2 Linux和Windows区别 第 2 章 VMware、Ubuntu、Xshell和Xftp安装 第 3 章 Linux文件与目录结构 3.1 Linux文件 Linux系统中一切皆文件。 3.2 Linux目录结构  /bin 是Binary的缩写, 这个目录存放着最经常使用的命令的可执行文件&#xff0c…

Pytest安装

一、简介 pytest是一个非常成熟的全功能的Python测试框架&#xff0c;主要有以下几个特点&#xff1a;简单灵活&#xff0c;容易上手支持参数化能够支持简单的单元测试和复杂的功能测试&#xff0c;还可以用来做selenium/appnium等自动化测试、接口自动化测试&#xff08;pytes…

企业网站html源代码 企业网站管理源码模板

在数字化转型加速的今天&#xff0c;企业官网已成为品牌展示与业务拓展的核心阵地。本文将从技术实现角度&#xff0c;解析企业网站HTML基础架构与管理系统的源码设计逻辑&#xff0c;为开发者提供可复用的模板化解决方案。 企业网站源码5000多套&#xff1a;Yunbuluo.Net 一…

特征工程四-1:自定义函数find_similar_docs查找最相似文档案例

find_similar_docs 函数参数详解及实际示例 函数参数说明 def find_similar_docs(query, vectorizer, doc_matrix, top_n3):参数类型说明querystr要查询的文本字符串vectorizerTfidfVectorizer已经训练好的TF-IDF向量化器doc_matrixscipy.sparse.csr_matrix文档集的TF-IDF特征…

连锁美业管理系统「数据分析」的重要作用分析︳博弈美业系统疗愈系统分享

​美业管理系统中的数据分析功能在提升运营效率、优化客户体验、增强决策科学性等方面具有重要作用。 数据分析功能将美业从“经验驱动”升级为“数据驱动”&#xff0c;帮助商家在客户管理、成本控制、服务创新等环节实现精细化运营&#xff0c;最终提升盈利能力与品牌竞争力…

当元数据遇见 AI 运维:智能诊断企业数据资产健康度

在数字化浪潮席卷全球的当下&#xff0c;企业数据资产规模呈指数级增长&#xff0c;然而传统数据监控方式却逐渐暴露出诸多弊端。想象一下&#xff0c;在某头部电商的晨会上&#xff0c;数据工程师小王正经历职业生涯最尴尬的时刻&#xff1a;“昨天促销活动的 UV 数据为什么比…

淘宝tb.cn短链接生成

淘宝短链接简介 1. 一键在线生成淘宝短链接tb.cn,m.tb.cn等 2. 支持淘宝优惠券短链接等淘宝系的所有网址 3. 生成的淘宝短链接是官方的&#xff0c;安全稳定有保证 4.适合多种场景下使用&#xff0c;如&#xff1a;网站推广&#xff0c;短信推广 量大提供api接口&#xff0…

【LLM应用开发101】初探RAG

本文是LLM应用开发101系列的先导篇&#xff0c;旨在帮助读者快速了解LLM应用开发中需要用到的一些基础知识和工具/组件。 本文将包括以下内容&#xff1a;首先会介绍LLM应用最常见的搜索增强生成RAG,然后引出实现RAG的一个关键组件 – 向量数据库&#xff0c;随后我们是我们这…

努比亚Z70S Ultra 摄影师版将于4月28日发布,首发【光影大师990】传感器

4月22日消息&#xff0c;努比亚将在4月28日14:00召开努比亚AI双旗舰新品发布会&#xff0c;预计发布努比亚Z70S Ultra 摄影师版和努比亚首款平板产品。据悉&#xff0c;努比亚Z70S Ultra 摄影师版将搭载第七代真全面无孔屏、第五代原生35mm高定光学、6600mAh电池&#xff0c;可…

DAY7-C++进阶学习

模板 学习链接1&#xff1a;C模板入门学习 学习链接2&#xff1a;C模板进阶学习 STL的重要实现原理&#xff0c;模板的声明和定义建议放到一个文件 xxx.hpp 里面或者 xxx.h&#xff0c;防止编译错误。 函数模板特化 1.基础模板 2.template<> 3.函数名<特化类型>…

redis_Windows中安装redis

①Windows安装包下载地址&#xff1a;https://github.com/tporadowski/redis/releases 当前最新版本截图 ②根据自己系统平台的实际情况选择对应的安装包&#xff0c;如&#xff1a;64位win10系统可选择Redis-x64-5.0.14.msi ③下载完成后运行安装&#xff0c;没有特殊要求的话…

Windows 安装 MongoDB 教程

Windows 安装 MongoDB 教程 MongoDB 是一个开源的 NoSQL 数据库&#xff0c;它使用文档存储模型而不是传统的关系表格。它非常适合需要处理大量数据并且需要高性能、可扩展性的应用场景。下面是如何在 Windows 系统上安装 MongoDB 的详细步骤。 一、准备工作 确保你的 Windo…