Java中的單例模式是指只允許一個對象實例存在的設計模式,常常用于需要實例化的類只需要一個實例的情況。
單例模式有多種實現方式,其中最常見的是懶漢式和餓漢式。
// 懶漢式,線程不安全 public class SingletonLazy { private static SingletonLazy instance; private SingletonLazy() {} public static SingletonLazy getInstance() { if (instance == null) { instance = new SingletonLazy(); } return instance; } } // 餓漢式,線程安全 public class SingletonHungry { private static SingletonHungry instance = new SingletonHungry(); private SingletonHungry() {} public static SingletonHungry getInstance() { return instance; } }
常量是指一旦被定義就不可被更改的數據。
Java中常量有兩種類型:編譯時常量和運行時常量。
編譯時常量使用final關鍵字修飾,一旦被定義就不能改變。常量的命名一般使用全大寫字母,多個單詞之間使用下劃線分隔。
public class Constants { public static final int MAX_NUM = 100; public static final String ERROR_MSG = "An error occurred."; }
運行時常量使用關鍵字const,但是Java不支持const關鍵字,所以如果需要運行時常量,可以使用靜態不可變變量,或者使用枚舉類型。
// 使用靜態不可變變量 public class Constants { public static final String MONDAY = "Monday"; public static final String TUESDAY = "Tuesday"; } // 使用枚舉類型 public enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY; }