このコードを確認してください
public class StringbuilderDoubt {
public static void main(String args[]){
new StringbuilderDoubt().methodTest();
}
public void methodTest(){
String str=new String("Default");
StringBuilder sb=new StringBuilder();
sB1(str,sb);
sB2(str,sb);
System.out.println(str+".........."+sb);
}
private void sB1(String str1, StringBuilder sb1){
str1+="str1";
sb1.append("sB1");
}
private void sB2(String str2, StringBuilder sb2){
str2+="str2";
sb2.append("sB2");
}
}
出力は次のとおりですDefault..........sB1sB2
。StringBuilderが参照渡しのように機能するのはなぜですか。methodTestでは、2つのオブジェクトstringとstringbuilderを渡します。文字列は値渡しですが、StringBuilderは、メソッドの呼び出しからの参照渡しとStringBuilderオブジェクトが変更されたように見えます。