mou*_*aim 1 java string string-comparison
我被要求预测此代码的输出:
String party1 = "party";
String party2= "PARTY".toLowerCase();
if(party1==party2){
System.out.println("EQUAL");
}else{
System.out.println("NOT EQUAL");
}
Run Code Online (Sandbox Code Playgroud)
我认为的结果toLowerCase()将被自动插入,因此party1将返回相同的引用,但是由于代码输出“ NOT EQUAL”,我是错的。
是否toLowerCase()(toUpperCase()以及)返回一个新的String?
编辑:我不使用==比较字符串,我只想了解toLowerCase()方法的行为
如果将任何String操作的结果内在化,则该池将极其迅速且不必要地迅速增长。对Spring的任何中间操作都会在池中产生一个新元素。对于非常特定的域内的极少数情况,这将是有益的。因此,这不是默认策略,因此intern()存在。
String party1 = "party";
String party2 = "PARTY".toLowerCase().intern();
System.out.println(party1 == party2 ? "EQUAL" : "NOT EQUAL");
Run Code Online (Sandbox Code Playgroud)
没什么特别的toLowerCase():因为s是不可变的,所以任何String方法都将返回一个新值。StringString