举个例子:
StringBuilder s1 = new StringBuilder("abc");
StringBuilder s2 = new StringBuilder("abc");
用s1==s2 返回值为false
用s1.Equals(s2)返回值为true
这是因为s1与s2是两个对象,而“==”比较的是一个对象在内存中的地址,即s1与s2是不是同一个对象。创建s1,s2两个对象,他们在内存中地址的位置是不一样的;
"equals" : 操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。它比较的是“abc”以"abc"是不是一样
|