字符串池在从方法返回值的情况下是否有效?
Is string pool works in case of returning values from method?
我对 Java 中的字符串池有一些了解。网络中的所有示例都与显式创建变量有关。但是如果我 return 从方法中硬编码字符串会发生什么。是使用字符串池还是每次方法调用都会一次又一次地创建字符串。我找不到有关此案例的任何信息。
我有这样的例子:
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);
}
//...
}
而且我想知道,我的第一个案例是使用字符串池吗?哪种情况会更快?
字符串池将用于所有字符串文字,无论您是在方法体中使用它还是初始化静态最终字段都没有关系。这两个都将使用字符串池(和 return interned 字符串对象)。
我对 Java 中的字符串池有一些了解。网络中的所有示例都与显式创建变量有关。但是如果我 return 从方法中硬编码字符串会发生什么。是使用字符串池还是每次方法调用都会一次又一次地创建字符串。我找不到有关此案例的任何信息。
我有这样的例子:
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);
}
//...
}
而且我想知道,我的第一个案例是使用字符串池吗?哪种情况会更快?
字符串池将用于所有字符串文字,无论您是在方法体中使用它还是初始化静态最终字段都没有关系。这两个都将使用字符串池(和 return interned 字符串对象)。