StringBuffer和StringBuilder

Posted 摘星丶仙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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));
    

以上是关于StringBuffer和StringBuilder的主要内容,如果未能解决你的问题,请参考以下文章

字符串拼接的五种方式

java从基础知识字符串处理

StringBuffer 和 StringBuilder 总结

转载String和StringBuffer的区别,以及StringBuffer的常用方法介绍

Stringbuffer和StringBuilder

StringBuffer 和 StringBuilder 类