String StringBuffer Stringbuilder 作为形参

String StringBuffer Stringbuilder 作为形参

String、StringBuffer、StringBuilder作为参数传递时和基本数据类型一样。并不会改变实参的值。

public static void main(String[] args) {
		String str = "11";
		StringBuffer sf =  new StringBuffer("112");
		System.out.println(str);
		System.out.println(sf);
		test(str);
		test(sf);
		System.out.println(str);
		System.out.println(sf);
	}
	
	static void test(String str) {
		str = "666";
	}
	static void test(StringBuffer str) {
		str = new StringBuffer("666");
	}

运行结果:

11
112
11
112

但是StringBuffer和StringBuilder形参在调用了方法,能进行改变。

	static void test(StringBuffer str) {
		str = new StringBuffer("666");
		str.append("+123");
	}

猜一下上面运行的是结果是啥?
结果是112+123?还是666+123?还是112?
运行结果是后者。
enter description here
但是。这样的运行结果呢?
enter description here
运行结果为112+123

posted on 2020-05-27 16:55  寄居の友人c  阅读(217)  评论(0编辑  收藏  举报