List<String> list = new ArrayList<String>();
String string = null;
string = "123";
list.add(string);
string = "456";
list.add(string);
for (String s : list)
{
System.out.println(s);
}
このプログラムは次を出力します。
123
456
これはかなり自然なことです。
しかし、私は別の方法で考えています。「string」は、実際の String オブジェクトへの参照 (ポインタ) です。add() を実行すると、参照が格納されるだけです。「string」が別の String オブジェクトを参照している場合、リストが元のオブジェクトを保持しているのはなぜですか? add() の前にコピーを作成しますか?