小编Kra*_*ari的帖子

Java 字符串池是否存储重复的文字?

正如我所理解的,每当我们创建一个String文字时,都会检查池中是否存在String具有相同值的任何现有内容。如果存在,则返回对其的引用。否则会创建一个新的文字。

由此,我明白池只包含非重复的String文字。

但我对以下代码的输出感到困惑:

String str1 = "Hello World";
String str2 = "Hello";
String str3 = str2+" World";
System.out.println(str3);
System.out.println(((str1 == str3) ? "equal":"unequal"));`
Run Code Online (Sandbox Code Playgroud)

由于str3正在评估 指向"Hello World"的池中已经存在的对象,因此应该str1分配对相同对象的引用str3,因此str1并且str3应该是相等的。

但是代码显示它们是不平等的。如果有人可以解释,将不胜感激。

java string

1
推荐指数
1
解决办法
65
查看次数

标签 统计

java ×1

string ×1