gpt4 book ai didi

java - string.toUppercase() 在堆或字符串池中创建了一个新对象

转载 作者:行者123 更新时间:2023-12-04 03:09:30 26 4
gpt4 key购买 nike

如果我们使用 String 类的 toUpperCase() 方法,它会将对象放入堆中而不是在 String 池中创建它。下面是代码,当我运行时,我可以推断新创建的字符串对象不在字符串池中。

public class Question {
public static void main(String[] args) {
String s1="abc";
System.out.println(s1.toUpperCase()==s1.toUpperCase());
}
}

以上代码的输出返回false。我知道“==”和 equals() 的区别,但在这个问题中我想知道为什么两个创建的字符串不相等。唯一的解释可能是它们不是在 String 池中创建的,而是完全不同的两个对象。

最佳答案

Java 自动实习字符串文字。检查这个answer ,但是当您使用 toUpperCase() 时,它会使用 new String() 创建字符串的新实例,这就是两个对象不同的原因。

关于java - string.toUppercase() 在堆或字符串池中创建了一个新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46398042/

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