Java中的常量可以區分為靜態常量和實例常量。靜態常量是指在類中通過static關鍵字修飾的常量,實例常量則是指沒有被static修飾的常量。下面我們來分別講解它們的特點和使用方法。
首先是靜態常量,它的定義方式如下:
public class MyClass { public static final int MAX_NUM = 100; // 靜態常量 }
靜態常量只會在程序啟動時被加載一次,之后便一直存在于內存中,并且可以被所有的對象所共享。它通常被直接用類名來訪問,例如:
System.out.println(MyClass.MAX_NUM); // 直接用類名訪問靜態常量
由于靜態常量存在于內存中,因此它的值在程序運行時是不可修改的,這就保證了它的不變性。而且,靜態常量通常用于存儲一些編譯時常量,比如數學常數、系統參數等。
接下來是實例常量,它的定義方式如下:
public class MyClass { public final int count = 0; // 實例常量 }
實例常量是每個對象所擁有的,每個對象的實例常量之間相互獨立,其值也可以在對象的生命周期中被修改。實例常量不需要使用static關鍵字修飾,它通常用于存儲那些和對象狀態有關的常量。例如:
MyClass obj1 = new MyClass(); MyClass obj2 = new MyClass(); obj1.count = 100; // 修改obj1的實例常量 obj2.count = 200; // 修改obj2的實例常量 System.out.println(obj1.count); // 輸出100 System.out.println(obj2.count); // 輸出200
需要注意的是,實例常量必須在對象的構造方法中進行初始化,否則會出現編譯錯誤。并且,實例常量通常采用public final的方式聲明,這也是符合面向對象程序設計原則的。
下一篇java冪等性和一致性