首先比较两个对象是否是同一个對象
先看传入对象是否为String,
则逐位比较相同下标的字符串的比较是否相等
其他场景都是false;
运行代码部分内存分析:
String a="123";//堆中常量池增加常量“123”,栈中引用类型a指向“123”的内存地址
String b="123";//堆中常量池中已有常量“123”,栈中引用类型b指向“123”的内存地址
c==d比较的是引用的String对象的地址,所以此处返回false,
c.equals(d)比较的是c、d的字符串的比较数组逐位比较后返回true