StringBuffer和StringBuilder

可变字符串

  • StringBuffer:可变长字符串,JDK1.0提供,运行效率慢、线程安全。
  • StringBuilder:可变长字符串,JDK5.0提供,运行效率快、线程不安全。
/**
 * StringBuffer和StringBuilder的使用
 * 和String区别:(1)效率比String高(2)比String节省内存
 */
public class Demo5 {
    public static void main(String[] args) {
//        StringBuffer sb = new StringBuffer();
        StringBuilder sb = new StringBuilder();

        //1.append():追加
        sb.append("java世界第一");
        System.out.println(sb.toString());
        sb.append("java真香");
        System.out.println(sb.toString());

        //2.insert():添加
        sb.insert(0,"我在最前面");
        System.out.println(sb.toString());

        //3.replace():替换
        sb.replace(0,5,"hello");
        System.out.println(sb.toString());

        //delete():删除
        sb.delete(0,5);
        System.out.println(sb.toString());

        //清空
        sb.delete(0,sb.length());
        System.out.println(sb.toString());

    }
}
/**
 * 验证StringBuffer效率高于String
 */
public class Demo6 {
    public static void main(String[] args) {
        //开始时间
        long start = System.currentTimeMillis();
//        String string = "";
//        for (int i = 0; i < 99999; i++) {
//            string += i;
//        }
//        System.out.println(string);
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < 99999; i++) {
            sb.append(i);
        }
        System.out.println(sb.toString());
        long end = System.currentTimeMillis();
        System.out.println("用时:" + (end - start));
    }
}
上一篇:判断函数类型 Object.prototype.toString().call


下一篇:WPF小经验