Javaの参照の値渡し

 通称「参照渡し」と呼ばれている奴です、通称。今日研修でも触れた上にタイムリーにTwitterでも触れられていたのにはビックリしました。ミソなのは参照そのものが渡されているんじゃなくて、参照のコピーが渡されているという点ですね。でも参照の示すオブジェクトは参照にしろ参照のコピーにしろ同じものを指しているので、「Cのポインタと同じだっ」なんて思ってしまわれるのでしょう。Cで言う参照渡しも厳密には参照渡しとは言わないらしいのですが。

 話をややこしくしてるのがStringとかなのかな。

 図を書いて説明するのが楽だよなーと思いつつググってみてたらJavaの日々: 2006年9月ここの記事の図が分かりやすいっすなー。配列も話をややこしくしていると思うのです。