String 值传递or引用传递

2014-11-24 02:59:58 · 作者: · 浏览: 0

其实,要是在之前,我会很肯定的回答String是引用传递,但是今晚一个例子,也可以说是自己忘了一些String的知识点,如需复习一下String的可以,看一下我之前的一篇博客用好字符串,提防陷阱


好吧,我简单列一下我遇到的情况

public class Test
{
	public static void main(String[] args) throws IOException
	{
		String str = "string";

		append(str);
		System.out.println("main方法:" +str);

	}

	public static void append(String str)
	{
		str += " change";
		System.out.println("append方法:" + str);
	}
}

结果:

\

这时我就开始怀疑是不是String其实是值传递呢?


< http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+19DPuNK7z+ujrMbkyrVTdHJpbmfKx7K7v8mx5LOktcSjrNKyvs3Kx1N0cmluZ7jEseTBy6OsxMdqdm3G5Mq1vs3U2ru6s+Wz2LOkyfrBy9DCtcRTdHJpbmfWsb3Twb+jrLKisNFTdHJpbmfWuM/yy/ujrMv50tTJz8PmtPrC69bQ1rTQ0LXEveG5+77NysdtYWlu1tC1xHN0cta4z/LUrcC0tcRTdHJpbmfWsb3Twb+jrLb4IGFwcGVuZLe9t6jW0LXEc3Ry1rjP8tDCtcRTdHJpbmfWsb3Twb88YnI+CjwvcD4KPHA+PGJyPgo8L3A+CjxwPtKqyrXP1snPw+a1xNCnufu/ydLU08O/ydLUseSzpLXEU3RyaW5nQnVpbGRlcqOsy/vV+7j2uf2zzNbQsru74bOkyfrQwrXEttTP8zwvcD4KPHA+PHByZSBjbGFzcz0="brush:java;">public class Test { public static void main(String[] args) throws IOException { StringBuilder str = new StringBuilder("string"); append(str); System.out.println("main方法:" + str); } public static void append(StringBuilder str) { str.append(" change"); System.out.println("append方法:" + str); } }
结果:


其实以上这些点,在我之前的博客用好字符串,提防陷阱就有关于String的注意事项,不过确实有时候还是会跌入这些啃爹的陷阱了去