1.String
字符串常量。
String s = "abcd";
s = s+1;
System.out.print(s);
// result : abcd1
這一段創(chuàng)建了兩個(gè)對(duì)象勺馆,分別為abcd的常量和abcdl的常量戏售。
第一個(gè)常量對(duì)象被jvm進(jìn)行g(shù)c回收。
2.StringBuffer
字符串變量
線(xiàn)程安全的草穆。
3.StirngBuilder
字符串變量
線(xiàn)程不安全的灌灾。
4.速度比較
- StringBuilder>StringBuffer>String
原因:- 變量比常量操作更加快速。
- 因?yàn)槌A康拿恳淮胃淖冃枰陆ㄒ粋€(gè)常量续挟。
StringBuilder不用考慮線(xiàn)程安全的問(wèn)題紧卒,所以比StringBuffer快。
5.特例
String s="a"+"b";
StringBuilder s=new StringBuilder("a").append("b");
在這里String是比StringBuilder快的诗祸,因?yàn)閖vm直接將String的操作轉(zhuǎn)換成
String s="ab";
如果是這樣
String s="a";
s=s+"b";
那么String的速度就比StringBuilder慢了跑芳。