String 类总结
(补充!)String 使用注意说明:
-
String s = "a"
:创建了一个字符串
-
-
实际上原来的 “a” 字符串对象已经弃弃了,现在又产生了一个字符串 s + “b” (也就是 “ab”)
-
-
如果这样的操作放到循环中,会极大影响程序的性能
-
1. 类别
2. 效率关系
StringBuilder > StringBuffer > String
效率测试代码
public class time_test {public static void main(String[] args) {long startTime = 0L;long endTime = 0L;StringBuffer buffer = new StringBuffer("");startTime = System.currentTimeMillis();for (int i = 0; i < 80000; i++) {buffer.append(String.valueOf(i));}endTime = System.currentTimeMillis();System.out.println("StringBuffer 的执行时间: " + (endTime - startTime));StringBuilder builder = new StringBuilder("");startTime = System.currentTimeMillis();for (int i = 0; i < 80000; i++) {builder.append(String.valueOf(i));}endTime = System.currentTimeMillis();System.out.println("StringBuilder 的执行时间: " + (endTime - startTime));String text = "";startTime = System.currentTimeMillis();for (int i = 0; i < 80000; i++) {text = text + i;}endTime = System.currentTimeMillis();System.out.println("String 的执行时间: " + (endTime - startTime));}
}
输出结果
StringBuffer 的执行时间: 10
StringBuilder 的执行时间: 0
String 的执行时间: 3871
3. 如何选择?
-
如果字符串在大量的修改操作,一般使用 StringBuffer
或 StringBuilder
-
-
如果字符串在大量的修改操作,并在多线程的情况下,使用 StringBuffer
-