我刚刚开始学习Java并且遇到了这个问题:
String s = "Hello";
String s1 = "Hello";
if(s.equals("Hello") && s.equals(s1))
{
System.out.println("Equal");
}
Run Code Online (Sandbox Code Playgroud)
if语句中的第一个条件将字符串文字s与字符序列进行比较,其中第二个语句s与另一个字符串文字进行比较s1.两种比较都证明是正确的.
我的理解是,s将持有参考,"Hello"并且同样如此s1.作为s并且s1保持引用"Hello",它们可以被比较并且总是相等的(因为'公共字符串池').
我的问题是:如何s将包含引用的内容与实际的字符串"Hello"序列进行比较?有没有任何逻辑,或者它只是处理内存引用的实现,然后比较两个?
如果我的理解错误,请纠正我...