代码示例:
/** * java.lang.StringBuffer:代表可变的字符序列,可以对字符串内容进行增删 线程安全 * java.lang.StringBuilder:代表可变的字符序列,是JDK5.0新加入的,线程不安全 效率高于StringBuffer * * StringBuffer append(String s), StringBuffer append(int n) , * StringBuffer append(Object o) , StringBuffer append(char n), * StringBuffer append(long n), StringBuffer append(boolean n), * StringBuffer insert(int index, String str) * public StringBuffer reverse() :反转此StringBuffer * StringBuffer delete(int startIndex, int endIndex) * public char charAt(int n ) * public void setCharAt(int n ,char ch) * StringBuffer replace( int startIndex ,int endIndex, String str) * public int indexOf(String str) * public String substring(int start,int end) * public int length() * * 总结:添加:append() 删除:delete(int startIndex, int endIndex) * 修改: setCharAt(int n ,char ch) 查:charAt(int n ) * 插入:insert(int offset, String str) 反转:reverse() 长度:length() */ public class TestStringBuffer { /* * 对比String、StringBuffer、StringBuilder三者在添加上的效率 * 效率从高到低:StringBuilder > StringBuffer > String * */ @Test public void test2() { String text = ""; long startTime = 0L; long endTime = 0L; StringBuffer buffer = new StringBuffer(""); StringBuilder builder = new StringBuilder(""); startTime = System.currentTimeMillis(); for (int i = 0; i < 20000; i++) { buffer.append(String.valueOf(i)); } endTime = System.currentTimeMillis(); System.out.println("StringBuffer的执行时间:" + (endTime - startTime)); startTime = System.currentTimeMillis(); for (int i = 0; i < 20000; i++) { builder.append(String.valueOf(i)); } endTime = System.currentTimeMillis(); System.out.println("StringBuilder的执行时间:" + (endTime - startTime)); startTime = System.currentTimeMillis(); for (int i = 0; i < 20000; i++) { text = text + i; } endTime = System.currentTimeMillis(); System.out.println("String的执行时间:" + (endTime - startTime)); } @Test public void test1() { StringBuffer sb = new StringBuffer(); System.out.println(sb.length()); sb.append("abc").append("123").append(true); // ArrayList list = new ArrayList(); System.out.println(sb); sb.insert(3, "hello"); System.out.println(sb); StringBuffer sb1 = sb.reverse(); System.out.println(sb1); System.out.println(sb); //都反转了 } }test1结果:
StringBuffer的执行时间:11
StringBuilder的执行时间:4
String的执行时间:1514test2结果:
0
abc123true
abchello123true
eurt321ollehcba
eurt321ollehcba
StringBuffer与StringBuilder详解
98

被折叠的 条评论
为什么被折叠?



