3

質問から来て、同じ内容の 2 つの文字列が同じメモリ位置に保存されますか?

Javaコードを持っている

String s1="Java";

この文字列は同じメモリ位置 (または複数) に割り当てられますか?

  • 同じプログラムを複数回起動し、並行して (同時に) 実行するには?

可能な答え:

私は現在、C# 開発者です (ただし、前世紀には Java でプログラムされていました)。

私がこの質問をしたのは、.NET CLR と Java (JVM) の間で同じであると信じており、.NET アプリの答えを得たいと思っていたからです (ただし、頻繁に遭遇する「アプリケーション」プールの用語に疑問を持っていました)。

したがって、次のようになります(質問する前に徹底的に検索しなかったことをお詫びします):

文字列インターン プールは、同じ JVM または .NET CLR のすべてのインスタンス/プログラムごとに共有さ れるという回答があります。

4

4 に答える 4

2

同じメモリ位置:

String s1="Hola";
String s2="Hola";

個別のメモリの場所:

String s1="Hola";
String s2=new String("Hola"); 
于 2013-04-05T07:03:27.227 に答える
1

@gennady-vanin-ノボシビルスク....

文字列 s1="Java";文字列 s2="Java";文字列 s3="Java";文字列 s4="Java";

  1. 上記のStringConstantPoolロケーションで使用可能なすべてのオブジェクトは、すべてのオブジェクトが 1 つの (「Java」) ロケーションのみを指しています。
于 2013-04-05T06:50:13.143 に答える