Character , String , StringBuffer , StringBuilder , StringTokenizer 的區別

Character , String , StringBuffer , StringBuilder , StringTokenizer 的區別

  1.String 是不可變類,一但被創建其值將不可被改變.

  2.StringBuffer是可變類,創建之後仍然可以對其值進行修改

  3.由於String是不可變類,在用String進行字符串拼接的時候實際上是創建一個StringBuffer對象,然後調用其append()方法來實現的.即如下代碼是等價的:

String s = "hello";
s+="world";
StringBuffer buffer = new StirngBuffer("hello");
buffer.append("world");
String s = buffer.toString();

  4.正是由於對String直接來操作要進行轉化,所以用String會造成更多的內存消耗與耗時(當然小數量級的操作不明顯)

  5.StringBuilder 也是可以被修改的字符串,他的使用與StringBuffer類似,但是StringBuilder不是線程安全的,只適合在單線程中使用,而StringBuffer是線程安全的,內部有同步的處理,所以如果在多線程中應首先考慮StringBuffer.

  6.在執行效率方面,StringBuilder最高,StringBuffer次之,String最低.如果操作很少,應首選String,單線程大量使用應首先StringBuilder,多線程大量使用應首選StringBuffer

  7.StringTokenizer是用於分割字符串的工具,使用比較簡單,實例代碼如下:

public class TokenizerTest {
    public static void main(String[] args) {
        StringTokenizer tokenizer = new StringTokenizer("This is a StringTokenizer Test");
        while (tokenizer.hasMoreTokens()) {
            System.out.println(tokenizer.nextToken());
        }
    }
}
//輸出
This
is
a
StringTokenizer
Test
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章