標籤(空格分隔): Javajava
JDK1.5引入了新的類型——枚舉。在 Java 中它雖然算個「小」功能,卻給個人開發帶來了「大」方便。android
用法一:常量
在JDK1.5 以前,咱們定義常量都是: publicstaticfianl.... 。如今好了,有了枚舉,能夠把相關的常量分組到一個枚舉類型裏,並且枚舉提供了比常量更多的方法。安全
public enum Color { RED, GREEN, BLANK, YELLOW }
String的值是不可變的,每次對String的操做都會生成新的String對象,不只效率低,並且耗費大量內存空間。多線程
StringBuffer類和String類同樣,也用來表示字符串,可是StringBuffer的內部實現方式和String不一樣,在進行字符串處理時,不生成新的對象,在內存使用上要優於String。app
StringBuffer默認分配16字節長度的緩衝區,當字符串超過該大小時,會自動增長緩衝區長度,而不是生成新的對象。學習
StringBuffer不像String,只能經過new來建立對象,不支持簡寫方式,例如:ui
StringBuffer類的主要方法:
StringBuffer類中的方法主要偏重於對於字符串的操做,例如追加、插入和刪除等,這個也是StringBuffer類和String類的主要區別。實際開發中,
若是須要對一個字符串進行頻繁的修改,建議使用StringBuffer。
(1)append()方法
append()方法用於向當前字符串的末尾追加內容,相似於字符串的鏈接。調用該方法之後,StringBuffer對象的內容也發生改變。.net
StringBuilder類:
StringBuilder類和StringBuffer類功能基本類似,方法也差很少,主要區別在於StringBuffer類的方法是多線程安全的,而StringBuilder不是線程安全的,相比而言,StringBuilder類會稍微快一點。
StringBuffer、StringBuilder、String中都實現了CharSequence接口。
CharSequence是一個定義字符串操做的接口,它只包括length()、charAt(int index)、subSequence(int start,int end)這幾個API。
StringBuffer、StringBuilder、String對CharSequence接口的實現過程不同,線程
總結:
String直接實現了CharSequence接口,StringBuilder和StringBuffer都是可變的字符序列,它們都繼承於AbstractStringBuilder,實現了CharSequence接口。
總結
線程安全:
StringBuffer:線程安全
StringBuilder:線程不安全
速度:
通常狀況下,速度從快到慢爲StringBuilder>StringBuffer>String,固然這是相對的,不是絕對的。
使用環境:
操做少許的數據使用String。
單線程操做大量數據使用StringBuilder。
多線程操做大量數據使用StringBuffer。code
https://blog.csdn.net/android_jiangjun/article/details/52160574