Java 文字列が不変と見なされるのはなぜですか? 私は言うことができString name = "Paul";
、後で名前の値をに変更しname = "Henry";
ます。不変性はどこから来るのですか?
質問する
278 次
3 に答える
3
新しい文字列が作成されます。それらは間違いなく不変でインターンされています。
あなたはこれを行うことはできません:
String name = "Paul"; // in effect the same as new String("Paul");
name.setValue("Henry")
文字列は不変であるため、完全に新しいオブジェクトを作成する必要があります。
于 2013-05-14T12:17:53.960 に答える
1
オブジェクト自体は変更されませんでした。
あなたがしたことは次のとおりです
name <- String("Paul")
name <- String("Henry")
String("Paul") は変更されていません。
次のことを試してください。
String a = "test";
String b = a;
a = "test2";
System.out.println(b);
于 2013-05-14T12:17:52.770 に答える
1
文字列を参照している variable: name とそれが参照する文字列を区別します。
name はもともと文字列 "Paul" を指していましたが、後で別の場所を指すように変更しましたが、"Paul" 自体は影響を受けませんでした。
検討
String name = "Paul";
String name1 = name;
name = "Peter";
name1 は今何を参照していますか?
于 2013-05-14T12:18:34.463 に答える