1. 程式人生 > >String和StringBuffer型別資料進行引數傳遞問題

String和StringBuffer型別資料進行引數傳遞問題

1.String和StringBuffer的形的參做為傳遞
通常引數傳遞有兩種:

                基本型別:不會影響實際引數的值

                引用型別:會影響實際引數的值

而字串和StringBuffer的的作為引用型別是否是上面的一樣的呢?首先看一下下面的例子

package xfcy_01;
/**
 * 案例: String和StringBuffer做為形參傳遞
 * 形式引數:
 * 		基本型別:不會影響實際引數的值
 * 		引用型別:會影響實際引數的值
 * 注意:String型別資料應該按照基本資料處理
 * @author 曉風殘月
 *
 */
public class StringBufferDemo04 {
	public static void main(String[] args) {
		//1.String型別
		String str1="hello";
		String str2="world";
		System.out.println(str1+"----------------"+str2);
		change(str1,str2);
		System.out.println(str1+"----------------"+str2);
		
		//2.StringBuffer型別
		StringBuffer sb1=new StringBuffer("hello");
		StringBuffer sb2=new StringBuffer("world");
		System.out.println(sb1+"-----------------"+sb2);
		change2(sb1,sb2);
		System.out.println(sb1+"-----------------"+sb2);
	}
 
	private static void change2(StringBuffer sb1, StringBuffer sb2) {
		sb1=sb2;
		sb2=sb1.append(sb2);
	}
 
	public static void change(String str1, String str2) {
		str1=str2;
		str2=str1+str2;
	}
}

得到的結果為:

 

講解過分析如下:

但若為的StringBuffer的型別的資料

2.總結

       在引用型別中應該注意字串型別的資料是一種特殊情況,不會因為形參改變從而改變實參

 

       本文轉載自:https://blog.csdn.net/xiaofei__/article/details/53007009