0

次の例を考えてみましょう:

文字列 s1 "こんにちは";

文字列 s2 = "世界";

文字列 s3 = s2 + s3;

上記の例では、Stringpool にいくつのオブジェクトが作成されていますか? 文字列 s3 は Stringpool に追加されますか、それともヒープ メモリ内の別のオブジェクトですか、それとも JVM はヒープ内に新しいオブジェクトを作成し、それを stringpool にも追加しますか? 前もって感謝します :)

4

1 に答える 1

0

この場合、3 つの文字列が文字列プールに作成されます。1 つは Hello 用、もう 1 つは WorLd 用、もう 1 つは s3 用で、文字列は不変であるため、HelloWorld になりました。

s1=s1+"World1"; のようなことをしても また、それは String プールの新しい String (HelloWorld1) になります。これは、その変更のために作成された新しい String であり、Hello への s1 の古い参照は参照されていない String としてまだ存在するためです。

于 2018-10-31T15:26:01.653 に答える