文字列プールがメソッドから値を返す場合には動作しますか?

ユーリKozachok:

私はJavaで文字列プールに関するある程度の知識を持っています。ネットワーク内のすべての例では、明示的に変数を作成するとconected。私はこの方法でハードコードされた文字列を返す場合でも、何が起こるのだろう。それは文字列プールを使用するか、または文字列は各メソッド呼び出しのために何度も何度も作成されますです。私はこのケースについての情報を見つけることができません。

私はそのような例があります:

public class TestService {

  @Override
  protected Optional<String> getPayTypeCode() {
      return Optional.of("LDV");
  }
  //...
}

定数の例:

public class TestService {
  private static final String PAY_CODE = "LDV";

  @Override
  protected Optional<String> getPayTypeCode() {
      return Optional.of(PAY_CODE);
  }
  //...
}

そして、私は疑問に思って、私の最初のケースを使用する文字列プールがありますか?そして、その場合には、より高速に動作しますか?

ヨアヒム・ザウアー:

文字列プールを使用すると、メソッド本体で使用したり、静的最終フィールドを初期化する場合、それは問題ではありません、すべての文字列リテラルのために使用されます。それらの両方は、文字列プールを使用する(とインターンの文字列オブジェクトを返す)します。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=314109&siteId=1