一些陷阱(注意点)
- - - - - 1
String s=”123”;
String c=”123”;
这时候的引用对象指向同一个地址。
所以 s.equals(c); 和 s==c 的结果都是true; 正确的
原因:equals的比较法是比较两个对象的内容是否相同,均为123 正确
双等号比较的是是否指向同个地址,s在初始化的时候往池中丢了一个
“123”,C在初始化的时候则直接使用S的地址,则也为正确。
- - - - - 2
String s=new String(“123”);
String c=new String(“123”);
注意这时候,两个均为New 新建了一个对象 等同于在地址中新建了两个不同的String(“123”)
这时候指向的(注意了)可不是同一个地址了,而是两个不同的地址。
所以 s.equals(c)和s==c结果是true和false;
原因:同上一样 euqals比较内容(均为“123”),但是双等号这次可不指向同一个地址所以是错误的。