3

多くの回答を読みましたが、私の質問に正確に答えているものはありません。

あるポートで Java サービスを実行していて、クライアントがそれに接続して次のようなメソッドを呼び出すとします。

String data = getServiceData("clientKey");

今私の質問は、このキー (clientKey) はサービス側の文字列リテラル プールに格納されますか? 通常、定数プールに格納されるリテラルはコンパイル時に計算されますが、JVM の外部から渡された文字列や、ファイルの読み取り中に渡された文字列はどうなりますか?

4

2 に答える 2

3

String オブジェクトはクライアント側でシリアライズされ、デシリアライズされてヒープ メモリに保持されます。String Pool メモリに格納する場合は、intern()メソッドを使用する必要があります。

    String value;
    String data = (value =getServiceData("clientKey"))==null?null:value.intern();
于 2014-08-07T15:09:41.323 に答える