Java中String和StringBuffer对象上的equals()

在java中考虑下面的代码:

null

JAVA

// This program prints false
class GFG {
public static void main(String[] args) {
StringBuffer sb1 = new StringBuffer( "GFG" );
StringBuffer sb2 = new StringBuffer( "GFG" );
System.out.println(sb1.equals(sb2));
}
}


输出:

false

JAVA

// This program prints true
class GFG {
public static void main(String[] args) {
String s1 = "GFG" ;
String s2 = "GFG" ;
System.out.println(s1.equals(s2));
}
}


输出:

true

第一个示例的输出为false,第二个示例的输出为true。在第二个示例中,equals()的参数属于 字符串类 ,而在第一个示例中 StringBuffer类 .传递字符串对象时,会比较字符串。但当StringBuffer的对象被传递时,会比较引用,因为StringBuffer不会 对象类的override equals方法 . 例如,下面的第一个程序打印false,第二个程序打印true。

JAVA

// This program prints false
class GFG {
public static void main(String[] args) {
String s1 = "GFG" ;
StringBuffer sb1 = new StringBuffer( "GFG" );
System.out.println(s1.equals(sb1));
}
}


输出:

false

JAVA

// This program prints true
class GFG {
public static void main(String[] args) {
String s1 = "GFG" ;
StringBuffer sb1 = new StringBuffer( "GFG" );
String s2 = sb1.toString();
System.out.println(s1.equals(s2));
}
}


输出:

true

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享