1. 程式人生 > 其它 >變數&常量

變數&常量

變數的概念

變數,是儲存在記憶體中的資料的形象化符號,可以方便開發者對於記憶體中資料的操作

int age = 12;,這是一個 Java 中的區域性變數示例。它表示的是一個整數數字 12,變數名為 age。可以很清晰的理解,這個變數所代表的資料是年齡,形象化地表達出資料所代表的的含義

對於變數,它是存在記憶體空間中,名為 的區域內,這一點暫不做贅述

變數的使用

對於變數的使用,需要注意 變數本身所在的作用域,大致分為全域性作用域和區域性作用域(此處僅作了解)。

注意,變數必須在初始化之後才可以被使用,即變數存在對應的記憶體中的資料,對於資料為 null 需要格外警惕(原始型別不允許為 null)

int a = 10;
System.out.println(a);

上述的示例,定義了變數 a,資料為整數 10,並列印在控制檯。對於變數的更詳細使用,將在之後提到,這裡,無須在意其它

變數的命名

變數的命名是個大問題,我根據個人的理解標註出兩點(極為重要)

  1. 根據變數所處的區域、性質,存在不同的 命名格式,例如區域性、全域性、常量
  2. 根據變數所指代的資料,必須做到 見名知意,僅通過變數名即可理解其代表的資料的作用

接下來,簡單介紹變數的命名格式與如何做到見名知意(其餘部分可參考案阿里程式碼規約)

區域性變數的命名格式遵循 小駝峰原則(首單詞的首字母小寫),例如 userNameuserPassword

首先,變數的命名 不允許以數字、下劃線、美元符號為起始,儘可能的避免使用這三個元素

另外,Java 的變數 支援使用中文命名,但應當避免使用,可以將 英文無法解釋的內容以中文的形式寫在註釋中

見名知意,就是 讓變數的名稱充分體現出其所代表的資料的作用。當然,將使用者的名稱資料使用變數名 age 指代,IDE 也不會做糾正,但這會造成不必要的誤會。同時,也儘可能的避免使用 a、b、aa 這些無意義的命名

小駝峰命名、純英文字母、有意義命名,這是對於區域性變數命名的介紹。之後的全域性變數、常量、類名、方法名等也大同小異,同樣參考阿里規範

變數的不可變性

Java 中的變數,預設為可變變數。若是需要使得變數具備不可變性,則需要在變數名之前追加 關鍵字 final 做字首修飾

。不可變的變數,可以稱作常量

final,意為不可變、最終的,若變數字首了 final 修飾符,則必須使得 變數的定義與資料初始化同步進行,至少在區域性變數中應如此

/* 正確 */
final int a = 10;
/* 正確 */
final int b;
b = 20;
/* 錯誤,final 變數僅可以被賦值一次 */
final int c = 30;
c = 30;

被定義為不可變的變數,在使用中,僅可以被賦值一次。所以,儘可能的做到定義與賦值的同步,也易於理解。常量通常表示某個不可變的資料,例如一天中存在幾個小時

對於常量,它大多是定義在全域性,作為類的屬性存在,它的命名規則為:字母全部大寫,單詞之間以下劃線分隔

值得注意的我是,對於常量的命名,不建議做任何的縮寫,儘可能的表達出常量資料的含義。而對於預設的變數,大多使用完即釋放,則可以做一定的簡寫