Java の引数はプリミティブ型であれば値渡し、オブジェクトであれば参照渡しというのは周知の事実です。 その参照渡しは "オブジェクトの参照" を渡すのですが、広く知られている "変数の参照" を渡す方法と区別されていないためか、しばしば混乱する場合があります。 例を挙げるとわかりやすいと思います。下のソースを見てください。サンプルA public class SampleA { public static void main(String[] args) { String s1 = "main メソッド実行"; ・・・1 SampleA sampleA = new SampleA(); sampleA.test1(s1); ・・・2 System.out.println(s1); ・・・4 } public void test1(String s2) { s2 =