Java String、StringBuffer、StringBuilder类

创建字符串的方式有很多,String 类有 11 种构造方法,这些方法提供不同的参数来初始化字符串:
1、直接赋值,String a = "abc";
2、利用字符数组,char[] b = {'a', 'b','c'};String c = new String(b);
还有很多,比如利用StringBuffer、StringBuilder类。
注意:String 类是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了.如果需要对字符串做很多修改,那么应该选择使用 StringBuffer & StringBuilder 类。注意: String a = “abc”;a = a + “def”;这里字符串a的值改变了,但是内部的操作是首先把串池中的abc地址赋给a,第二句是把abcdef的地址赋给a,之前的字符串对象仍然存在,相当于垃圾。

public static void main(String[] args) {
	
	String a = "abc";
	char[] b = {'a', 'b','c'};
	System.out.println(a);
	System.out.println(b);
	String c = new String(b);
	System.out.println(c);
	System.out.println(a.concat(c));//连接两个字符串
	
}

当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类
StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。
由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。

public static void main(String[] args) {
	
	StringBuilder d = new StringBuilder("abc");
	System.out.println(d);
	d.append(b); // 可以改变字符串
	System.out.println(d);
	StringBuffer e = new StringBuffer("abc");
	e.append(b);  // 可以改变字符串
	System.out.println(e);
}

猜你喜欢

转载自blog.csdn.net/qq_33699659/article/details/84573227
今日推荐