String,StringBuffer,StringBuilder的区别

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

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

经验分享 程序员 微信小程序 职场和发展