String,StringBuilder,Stringbuffer的区别

String :不可变,每次对String的操作都会在“常量池”中生成新的String对象,线程安全。

StringBuffer:可变,不会产生新的对象,有同步锁,线程安全。

StringBuilder:可变,不会产生新的对象,无同步锁,线程不安全。

执行效率:StringBulider > StringBuffer > String

String str = "唐伯虎";

str = str + "点香烟";

System.out.print(str); // result : "唐伯虎点香烟"

短短的两个字符串,却需要开辟三次内存空间,不得不说这是对内存空间的极大浪费,执行效率同理。

你可能感兴趣的:(String,StringBuilder,Stringbuffer的区别)