「JavaSE 從新出發」02.02 引用數據類型

引用(複合)數據類型

1. 枚舉類型

例:
枚舉類型 Size 的聲明:
enum Size { SMALL, MEDIUM, LARGE, EXTRA_LARGE };
聲明 Size 類型變量:
Size s = Size.MEDIUM;java

注意:測試

  • Size 類型的變量只能存儲這個類型聲明中給定的某個枚舉值,或者 null 值。
  • toString 方法與 Enum.valueOf 靜態方法
  • 在比較兩個枚舉類型的值時,不須要調用 equals,能夠直接使用 == 比較。

補充:.net

public enum Day
{
MONDAY, TUESDAT, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
跟類定義同樣,枚舉類型能夠單獨放在一個文件裏,當一個枚舉類型用 public 修飾時,它對其餘包可見,不然只對同一個包中的類可見,這和類定義是同樣的。
標識符 MONDAY, TUESDAY等就稱爲枚舉常量(enumeration constants)
每個枚舉常量被隱式的聲明成 Day 的一個public、static成員,並且其類型爲Day,亦就是說這些常量是 self-typed 的
Ref:java裏有枚舉類型嗎?如何定義?設計

2. 字符串

  • 字符串是不可變的
    • Java 的設計者認爲共享帶來的高效率遠遠勝於提取、拼接字符串所帶來的低效率。
  • 使用equals()方法比較字符串內容
    • 若是虛擬機始終將相同的字符串共享,就能夠使用==運算符檢測是否相等。但實際上只有字符串常量是共享的,而+.substring(parm)等操做產生的結果並非共享的。所以,千萬不要使用==運算符測試字符串的相等性,以避免在程序中出現糟糕的 bug。從表面上看,這種 bug 很像隨機產生的間歇性錯誤。
  • 空串:str.length() == 0str.equals("")
  • null串:str == null
相關文章
相關標籤/搜索