个性化阅读
专注于IT技术分析

StringBuffer和StringBuilder之间的区别

本文概述

Java提供了三个类来表示字符序列:String, StringBuffer和StringBuilder。 String类是不可变的类, 而StringBuffer和StringBuilder类是可变的。 StringBuffer和StringBuilder之间有许多区别。从JDK 1.5开始引入StringBuilder类。

下面列出了StringBuffer和StringBuilder之间的差异:

没有。 StringBuffer StringBuilder
1) StringBuffer已同步, 即线程安全。这意味着两个线程不能同时调用StringBuffer的方法。 StringBuilder是非同步的, 即不是线程安全的。这意味着两个线程可以同时调用StringBuilder的方法。
2) StringBuffer的效率不如StringBuilder。 StringBuilder比StringBuffer效率更高。
Java中的StringBuffer与StringBuilder

StringBuffer示例

//Java Program to demonstrate the use of StringBuffer class.
public class BufferTest{
    public static void main(String[] args){
        StringBuffer buffer=new StringBuffer("hello");
        buffer.append("java");
        System.out.println(buffer);
    }
}
hellojava

StringBuilder示例

//Java Program to demonstrate the use of StringBuilder class.
public class BuilderTest{
    public static void main(String[] args){
        StringBuilder builder=new StringBuilder("hello");
        builder.append("java");
        System.out.println(builder);
    }
}
hellojava

StringBuffer和StringBuilder的性能测试

让我们看一下检查StringBuffer和StringBuilder类性能的代码。

//Java Program to demonstrate the performance of StringBuffer and StringBuilder classes.
public class ConcatTest{
    public static void main(String[] args){
        long startTime = System.currentTimeMillis();
        StringBuffer sb = new StringBuffer("Java");
        for (int i=0; i<10000; i++){
            sb.append("Tpoint");
        }
        System.out.println("Time taken by StringBuffer: " + (System.currentTimeMillis() - startTime) + "ms");
        startTime = System.currentTimeMillis();
        StringBuilder sb2 = new StringBuilder("Java");
        for (int i=0; i<10000; i++){
            sb2.append("Tpoint");
        }
        System.out.println("Time taken by StringBuilder: " + (System.currentTimeMillis() - startTime) + "ms");
    }
}
Time taken by StringBuffer: 16ms
Time taken by StringBuilder: 0ms
赞(0)
未经允许不得转载:srcmini » StringBuffer和StringBuilder之间的区别

评论 抢沙发

评论前必须登录!