Добрый день. Столкнулся с такой ситуацией.
Сначала посмотрел , выдаст этот код:
class anyexperiment{
public static void main(String[] args) {
// StringBuffer a = new StringBuffer("One");
// StringBuffer b = new StringBuffer("Two");
String a = "One";
String b = "Two";
swap(a,b);
System.out.println("a is " + a + "\nb is " + b);
}
static void swap(String a, String b){
a = a + " more";
b = a;
}
}
вывод:
a is One
b is Two
Но! Если его чуть чуть поменять , то получится совсем другой результат:
class anyexperiment{
public static void main(String[] args) {
StringBuffer a = new StringBuffer("One");
StringBuffer b = new StringBuffer("Two");
// String a = "One";
// String b = "Two";
swap(a,b);
System.out.println("a is " + a + "\nb is " + b);
}
static void swap(StringBuffer a, StringBuffer b){
a.append(" more");
b = a;
}
}
вывод:
a is One more
b is Two
Подскажите в чем прикол?