如果我们在Java中连接两个字符串字面量,那么新的String是在何时何地创建的?
如果字符串池中都包含了a和d,那为什么a == d的结果是false呢?
难道d不是字符串池的一部分吗?
class StringClass {
public static void main(String[] args) {
String a = "java";
String b = "ja";
String c = "va";
String d = b + c;
System.out.println(a == d);
}
}
如果字符串池中都包含了a和d,那为什么a == d的结果是false呢?
难道d不是字符串池的一部分吗?
String#equals
的定义,a
和d
是相等的,但变量d
并没有指向字符串池。 - undefined"ja" + "va"
将与直接编码"java"
相同)。 - undefined