String,StringBuffer,StringBuilder的区别

来源:互联网 发布:万宝宝 知乎 编辑:程序博客网 时间:2024/05/22 13:35

单例模式的关键点:一个类只能构建一个对象。

String:字符串常量;

StringBuilder:字符串变量

StringBuffer:字符串变量

变量:在程序运行期间可以修改的量

常量:在程序运行期间不能修改的量

package test;public class StringTest {public static void main(String[] args) {String s1 = "123";s1 = s1 +"1";System.out.println(s1);}}


程序输出1231,看起来s1像是被改变了,其实是先创建一个s1对象,之后再创建一个s1对象执行第二段代码,最初的s1是没有被改变的。也就是说每次调用s1都会创建新的对象。这样的话效率会变得很低。


StringBuffer是线程安全的。StringBuffer有append和insert方法。可以接受任何类型的数据。

速度:StringBuilder>StringBuffer>String

单线程中操作大量数据建议用StringBuffer

多线程中操作大量数据建议用StringBuilder

操作少量数据建议用String