package com.sun.string;
/**
* @author 烛龙神
* @Description TODO
* @date 2021-05-29 20:42
*/
/**
* String、StringBuffer、StringBuild的区别
* 相同点:都是被final修饰 不可被继承
*不同点:
* String: private final char[] value 不可变 每次使用 + 进行拼接都会创建新的对象,而不是改变原来的对象
* StringBuffer:char[] value 可变
*StringBuild: char[] value 可变
*
* 线程安全:
* String:线程不安全
* StringBuffer:可以保证线程安全
* StringBuild:线程不安全
* 运行速度:
* StringBuild(因为线程不安全速度最快) > StringBuffer > String(慢是因为不可变每次都会创建一个新的对象)
*/
public class StringTest {
public static void main(String[] args) {
String str = "hello";
StringBuffer stringBuffer = new StringBuffer();
StringBuilder stringBuilder = new StringBuilder();
str += "world"; //每次使用 + 进行拼接都会创建新的对象,而不是改变原来的对象
System.out.println(str);
int n = 50000;
long s1 = System.currentTimeMillis();
String str1 = "";
for(int i=0;i<n;i++)
{
str +="hello"+i;
}
System.out.println("String使用的时间是"+(System.currentTimeMillis() - s1));
long s2 = System.currentTimeMillis();
StringBuffer stringBuffer1 = new StringBuffer();
for(int i=0;i<n;i++)
{
stringBuffer1.append("hello"+i);
}
System.out.println("StringBuffer使用的时间是"+(System.currentTimeMillis()-s2));
long s3 = System.currentTimeMillis();
StringBuilder stringBuilder1 = new StringBuilder();
for (int i= 0; i < n; i++)
{
stringBuilder1.append("hello"+i);
}
System.out.println("StringBuild使用的时间是"+(System.currentTimeMillis()-s3));
}
}
Java中String、StringBuffer、StringBuild的区别
最新推荐文章于 2024-03-20 21:21:55 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)