在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