StringBuffer sb1 = new StringBuffer("hello"); StringBuffer sb2 = new StringBuffer("hello"); if (sb1.equals(sb2)) System.out.println("equal"); else System.out.println("not equal"); the output is : not equal
to:: fillbill(fillbill) StringBuffer sb1 = new StringBuffer("hello"); StringBuffer sb2 = new StringBuffer("hello"); if (sb1.equals(sb2)) System.out.println("equal"); else System.out.println("not equal"); 中的equals()没有重载
在java中,+只有在String 中算重载。在 StringBuffer中都不算重载
1。关系运算符“==”是一个二元运算符,用来比较左右操作数是否相等,返回boolean值。 2。对于基本数据类型,直接比较值的大小。对于class类型(用户定义类型或标准库类)的 对象,比较的是对象的reference(引数),并不是对象的内容。 class a{ int b; } a s1=new a(); a s2=new a(); s1.b=10; s2.b=10; if(s1==s2){ System.out.println("true"); } else{ System.out.println("false"); }//因为引数不相同,所以结果输出false 3。如果要比较对象的内容,得用equals(). Byte s1=new Byte(10); Byte s2=new Byte(10); if(s1.equals(s2)){ System.out.println("true"); } else{ System.out.println("false"); }//因为对象内容相同,所以结果输出true 4。不过要注意的是equals()默认的也是比较对象的reference,但Java标准库中的多数类都 覆写了equals(),使它能比较对象的内容,所以想上面的用法没错。只是当想用自己定义的类使用equals()方法比较对象的内容时,必须覆写该方法,使它能比较对象的内容。(也可从标准库中也覆写过的类继承) class a{ int b; } a s1=new a(); a s2=new a(); s1.b=10; s2.b=10; if(s1.equals(s2)){ System.out.println("true"); } else{ System.out.println("false"); //输出false
equals()是比较值.
equals()是比较值.
equals()是比较值.
StringBuffer sb2 = new StringBuffer("hello");
if (sb1.equals(sb2))
System.out.println("equal");
else
System.out.println("not equal");
the output is :
not equal
StringBuffer sb2 = new StringBuffer("hello");
if (sb1.equals(sb2))
System.out.println("equal");
else
System.out.println("not equal"); 中的equals()没有重载
StringBuffer中都不算重载
2。对于基本数据类型,直接比较值的大小。对于class类型(用户定义类型或标准库类)的 对象,比较的是对象的reference(引数),并不是对象的内容。
class a{
int b;
}
a s1=new a();
a s2=new a();
s1.b=10;
s2.b=10;
if(s1==s2){
System.out.println("true");
}
else{
System.out.println("false");
}//因为引数不相同,所以结果输出false
3。如果要比较对象的内容,得用equals().
Byte s1=new Byte(10);
Byte s2=new Byte(10);
if(s1.equals(s2)){
System.out.println("true");
}
else{
System.out.println("false");
}//因为对象内容相同,所以结果输出true
4。不过要注意的是equals()默认的也是比较对象的reference,但Java标准库中的多数类都 覆写了equals(),使它能比较对象的内容,所以想上面的用法没错。只是当想用自己定义的类使用equals()方法比较对象的内容时,必须覆写该方法,使它能比较对象的内容。(也可从标准库中也覆写过的类继承)
class a{
int b;
}
a s1=new a();
a s2=new a();
s1.b=10;
s2.b=10;
if(s1.equals(s2)){
System.out.println("true");
}
else{
System.out.println("false");
//输出false
可能有点难理解。
你可以看一下。think in java 第十?章的