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.pswp.cn/bicheng/78673.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/78673.shtml
英文地址,請注明出處:http://en.pswp.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…