gpt4 book ai didi

java - 具有相同字符串值的两个不同变量引用相同的内存地址

转载 作者:行者123 更新时间:2023-12-01 11:48:45 24 4
gpt4 key购买 nike

我知道字符串是不可变的。但我对下面的代码有疑问:

class StringTest {
String s1 = "Joe";
String s2 = "Joe";
System.out.println(s1 == s2);
}

== 检查两者是否引用相同的内存地址(如果我没记错的话)。如果是这样,即使两个字符串被分配给两个不同的变量,为什么输出显示两者都引用相同的内存地址。

最佳答案

Java 使用intern pool为了性能,这两个变量引用相同的String。您可以使用 new 来获取新的,例如

class StringTest {
public static void main(String[] args) {
String s1 = "Joe";
String s2 = new String("Joe");
System.out.println(s1 == s2);
}
}

关于java - 具有相同字符串值的两个不同变量引用相同的内存地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28945275/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com