首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java final 關鍵字修飾數據:編譯期常數與運行期不可變引用的區別

     編輯:Java 綜合教學

Java final 數據詳解

final 用於數據有兩大用途:

  1. 編譯期常數:永不改變,編譯器可將值內聯到調用處,節省運行開銷。必須是基本類型,且聲明時賦值。
  2. 運行期初始化的不可變值:在構造器或實例初始化塊中賦值,之後不可更改引用指向。

基本類型 vs 引用類型

  • 基本類型:final int x = 10; 值不可變
  • 引用類型:final List list = new ArrayList(); 引用不可變(不能指向新對象),但對象內容可變(list.add("a") 合法)

Java 無機制將對象本身變為不可變(需靠類設計實現不可變模式)。

static final 組合

static final int CONST = 100; 佔用固定內存,僅一份拷貝,屬於類常量。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved