【初心者】Java質問・相談スレ47【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0473こういう事です。
NGNGString s2 = s1;
というのは、
String s1 = new String("ABC");
String s2 = new String(s1);
と内部で処理されます。 (JAVAでは、これは決まり事なんです。)
String s1 = "ABC";
String s2 = s1;
String s1 = "XYZ";
というのは、
String s1 = new String("ABC");
String s2 = new String(s1);
String s1 = new String("XYZ");
となります。
C言語でいう参照とか、C言語でいうポインタとか考えるといいとか言う人がいますが、
そういう風に考えると余計に混乱します。
s2 = s1 というのは、参照でもポインタでもなくて、 new String(s1) というように
新たらしいオブジェクトが生成されて、それがs2に代入されるんです。 s2はs1のメモリ
アドレスの事なんて何も知りません。
JAVAではこうなるんです。決まり事なんで覚えるしかないんです。
■ このスレッドは過去ログ倉庫に格納されています