java - 字符串池在从方法返回值的情况下是否有效?

标签 java string-pool

我对 Java 中的字符串池有一些了解。网络中的所有示例都与显式创建变量有关。但是如果我从方法返回硬编码字符串会发生什么。是使用字符串池还是每次方法调用都会一次又一次地创建字符串。我找不到有关此案例的任何信息。

我有这样的例子:

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);
  }
  //...
}

而且我想知道,我的第一个案例是使用字符串池吗?哪种情况会更快?

最佳答案

字符串池将用于所有字符串文字,无论您是在方法体中使用它还是初始化静态最终字段都没有关系。两者都将使用字符串池(并返回驻留的字符串对象)。

关于java - 字符串池在从方法返回值的情况下是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57953896/

相关文章:

java - 字符串连接在字符串池中是如何工作的?

java - 为什么每次我们使用 new 关键字创建字符串时 jvm 都会创建新的字符串对象

Java SE 字符串池

java - == 与 Enum name() 和 toString()

java - 如何在 Spring 中解码自定义命名空间?

java - 这是 Netty 从封闭 channel 读取数据的示例吗?

java - Tomcat WAR - 配置 Logback 以在路径中使用应用程序名称

java swing - 如何一次重新绘制所有组件,以便用户不会注意到它们被一一填充?

java - 我正在尝试使用 TestNG 在 selenium 3.0.1 中启动 Firefox,但我无法做到这一点。我也使用过 setProperty

JAVA : How many Objects will be created ? 为什么?