JavaにはC言語のような参照渡しは存在しない。
なるべく参照型の値渡しとかせめてオブジェクト参照渡しとか違いが分かるように言うのが良いだろう。
void foo () {
String a = "Foo";
bar(a);
System.out.println(a); // Foo
}
void bar (String b) { // String b = a; が実行されていると考えると分かりやすい
b = "Bar";
}
上は下記の処理と同等である。これでBarが出力されると思う人はまずいないだろう。
String a = "Foo"; String b = a; b = "Bar"; System.out.println(a); // Foo