實體常量類、內部常量類以及列舉類的區別
阿新 • • 發佈:2020-12-01
一、實體常量類 private static final String Success = "成功"; private static final String Fail = "失敗"; 1、JDK編譯時,直接把常量編譯到使用的地方。在修改變數值後,其它類有可能會出現 編譯到舊常量值的問題。 2、只能用equals比較,效能較低。無法保證型別是否合法,限定型別值。 3、如果使用了private,限定了只能當前類的擁有者才可以修改,如果使用public, 則子類可以繼承修改,父類並不知情 二、內部常量類 private static final String Success = new String("成功"); private static final String Fail = new String("失敗"); 1、JDK編譯時,直接把常量編譯到引用類地方。 2、可以使用==進行比較,提高效率。 三、列舉 1、型別限定,效能較高,推薦使用。 2、列舉構造方法是私有的,無法繼承修改,預設私有化無參構造方法, 可用於列舉單例