【发布时间】:2019-04-21 13:13:48
【问题描述】:
public class Child{
public static void main(String[] args){
String x = new String("ABC");
String y = x.toUpperCase();
System.out.println(x == y);
}
}
输出:true
那么toUpperCase() 总是创建一个新对象吗?
【问题讨论】:
-
我不会依赖这种行为,但我希望它能够避免创建新对象。
-
注意:new String(...) 不会改变答案。
-
String x = new String("ABC");请不要这样做。您创建 String 对象两次。只需使用 x = "ABC";
-
edit:有人指出 OP 使用 new String("ABC") 来指出它没有被实习。我看不出实习或不实习对 toUpperCase(Locale) 方法有何影响