String、StringBuffer與StringBuilder之間區別
2.
String
<(StringBuffer,StringBuilder)的原因
String:是字串常量
StringBuffer:是字串變數
StringBuilder:是字串變數
3.
StringBuilder:執行緒非安全的
StringBuffer:執行緒安全的
當我們在字串緩衝區被多個執行緒使用時,JVM不能保證StringBuilder的操作是安全的,雖然他的速度最快,但是可以保證StringBuffer是可以正確操作的。當然大多數情況下就是我們是在單執行緒下進行的操作,所以大多數情況下是建議用StringBuilder而不用StringBuffer的,就是速度的原因。
總結:
1.如果要操作少量的資料用 String。
2.在單執行緒操作字串緩衝區下,操作大量資料用 StringBuilder。
3.在多執行緒操作字串緩衝區下操作大量資料,需要保證執行緒安全的時候用 StringBuffer。
4.Java8中預設已經使用StringBuilder拼接字串,所以以後使用+即可,而不需要使用StringBuilder類了。注意:
疑問1.
-
String s = "abcd";
-
s = s+1;
- System.out.print(s);
解釋:
其實這是一種欺騙,JVM是這樣解析這段程式碼的:首先建立物件s,賦予一個abcd,然後再建立一個新的物件s用來執行第二行程式碼,也就是說我們之前物件s並沒有變化,所以我們說String型別是不可改變的物件了,由於這種機制,每當用String操作字串時,實際上是在不斷的建立新的物件,而原來的物件就會變為垃圾被GC回收掉,可想而知這樣執行效率會有多低。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30046312/viewspace-2143666/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- String, StringBuilder, StringBuffer 之間的區別 - JavaUIJava
- String,StringBuffer與StringBuilder的區別UI
- String、StringBuffer、與StringBuilder的區別UI
- String,StringBuffer與StringBuilder的區別??UI
- String、StringBuffer、StringBuilder區別?UI
- String,StringBuffer,StringBuilder區別UI
- String,StringBuilder,StringBuffer的區別UI
- String、StringBuilder、StringBuffer的區別UI
- String、StringBuffer、StringBuilder的區別UI
- Android- String、StringBuffer、StringBuilder區別AndroidUI
- Java中String/StringBuffer/StringBuilder區別(轉)JavaUI
- 『Java 語法基礎』String、StringBuffer 與 StringBuilder 的區別JavaUI
- 面試必知:String、StringBuilder、StringBuffer的區別面試UI
- String StringBuffer StringBuilder 三者的區別UI
- Java 之String、StringBuffer 和 StringBuilder 三者區別介紹JavaUI
- 從原始碼看String,StringBuffer,StringBuilder的區別原始碼UI
- StringBuilder StringBuffer String的區別(原始碼分析)-javaUI原始碼Java
- String StringBuffer StringBuilder的區別(前端面試必備)UI前端面試
- java中String、StringBuilder、StringBuffer三者的區別JavaUI
- Java中String,StringBuffer和StringBuilder的區別(轉載)JavaUI
- stringbuilder和stringbuffer區別UI
- Java中的String,StringBuilder,StringBuffer三者的區別JavaUI
- java複習之 String,StringBuffer,StringBuilderJavaUI
- Java 原始碼出發徹底搞懂String與StringBuffer和StringBuilder的區別Java原始碼UI
- 關於String與StringBuffer的區別
- JAVA中String與StringBuffer的區別Java
- StringBuffer和StringBuilder的區別UI
- StringBuilder和StringBuffer的區別UI
- String、StringBuffer、StringBuilder剖析UI
- String、StringBuilder和StringBufferUI
- Java的JDK下StringBuffer與StringBuilder的區別JavaJDKUI
- StringBuilder、StringBuffer和String三者的聯絡和區別(轉)UI
- String,StringBuffer, StringBuilder 的區別是什麼?String為什麼是不可變的?UI
- 【Java】String、StringBuilder和StringBufferJavaUI
- String、StringBuffer、StringBuilder的理解UI
- java String,StringBuilder和StringBufferJavaUI
- [Java]String、StringBuilder和StringBufferJavaUI
- Java容器深入淺出之String、StringBuffer、StringBuilderJavaUI