StringBuffer和StringBuilder和String的区别

StringBuffer是jdk1.0版本的,是线程安全的,效率低

StringBuilder是jdk1.5版本的,是线程不安全的,效率高

String是一个不可变的字符序列,StringBufffer和StringBuilder都是可变的字符序列


...........................................................................................。。。。。。。。。。。。。。。。。。。。。。。

String和StringBuffer分别作为参数传递

package com.heima.stringbuffer;
/*
 * 形式参数问题
 * 		String作为参数传递
 * 		StringBuffer作为参数传递
 * 
 * 
 * 基本数据类型的值传递,不改变其值
 * 引用数据类型的值传递,改变其值
 * */
public class demo_StringBuffer {

	public static void main(String[] args) {
		String s="heima";
		System.out.println(s);
		chang(s);//按住ctrl+1自动生成方法
		System.out.println(s);//前后两个打印出来都是heima,为什么
		//String类虽然是引用数据类型,但是他当作参数传递时和基本数据类型时一样的
		StringBuffer sb=new StringBuffer("baima");
		System.out.println(sb);
		change2(sb);
		System.out.println(sb);//这样就能改变了
}

	public static void change2(StringBuffer sb) {
		sb.append("heima");
		
	}

	public static void chang(String s) {
		s+="itcast";
		
	}

}
String类虽然是引用数据类型,但是他当作参数传递时和基本数据类型时一样的
但是StringBuffer类可以作为引用数据类型

猜你喜欢

转载自blog.csdn.net/qq_34788903/article/details/80463572