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?
运行结果是后者。
但是。这样的运行结果呢?
运行结果为112+123