java中StringBuffer和StringBuilder之间的区别

时间:2020-02-23 14:34:07  来源:igfitidea点击:

在本教程中,我们将在Java中看到StringBuffer和StringBuilder之间的区别

StringBuffer vs StringBuilder.

参数StringBufferStringBuilder
线程安全StringBuffer是线程安全的。两个线程不能同时调用stringbuffer的方法。StringBuilder不是线程安全的,因此两个线程可以同时调用StringBuilder的方法。
性能它的性能效率较低,因为它是线程安全的它更有性能效率,因为它不是线程安全的。

单线程环境中StringBuffer和StringBuilder之间的性能比较

package org.arpit.theitroad;
 
public class StringBuilderAndBufferMainTest {
 
 public static void main(String[] args) {
  
     long startTime = System.currentTimeMillis();  
        StringBuffer sb = new StringBuffer("Java");  
        for (int i=0; i<100000; i++){  
            sb.append("2Blog");  
        }  
        System.out.println("Time taken by StringBuffer: " + (System.currentTimeMillis() - startTime) + "ms");  
        startTime = System.currentTimeMillis();  
        StringBuilder sbuilder = new StringBuilder("Java");  
        for (int i=0; i<100000; i++){  
         sbuilder.append("2Blog");  
        }  
        System.out.println("Time taken by StringBuilder: " + (System.currentTimeMillis() - startTime) + "ms");  
 
 }
 
}

运行上面的程序时,我们可以在下面的输出以下:

Time taken by StringBuffer: 21ms
Time taken by StringBuilder: 9ms