Java字符串常量池

标签 java string

<分区>

在 Java 中,

String s1 =  new String("abc");
String s2 = new String("ab") + new String("cd");

是否会在字符串常量池中创建字符串“abc”和“abcd”?

最佳答案

s1s2 都不会指向常量池中的字符串,因为它们是通过显式构造函数调用和连接的组合创建的。只有字符串文字“abc”、“ab”和“cd”会在常量池中。

您需要显式intern() 新实例。在这种情况下,s1 == "abc" 将变为 true。

关于Java字符串常量池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38051978/

相关文章:

c# - 如何比较两个十六进制数

java - 从 Java 访问嵌套在伴生对象中的 Kotlin 对象

java - Spring Autowiring 不起作用

java - 强制 Java 编译器不内联最终静态字段

java - 用多个空格分割字符串

python - 如何使用 Python 删除字符串中的重复单词?

Java 字符串初始化和默认值

java - 使用 MessageFormat 生成 where 子句

java - 带连接的 Hibernate 查询 : QuerySyntaxException: unexpected token

java - 无法执行目标 org.springframework.boot :spring-boot-maven-plugin:2. 5.5:run (default-cli)