Considere los siguientes códigos en Java:
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)); } }
Producción:
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)); } }
Producción:
true
El resultado es falso para el primer ejemplo y verdadero para el segundo ejemplo. En el segundo ejemplo, el parámetro de equals() pertenece a la clase String , mientras que en el primer ejemplo pertenece a la clase StringBuffer . Cuando se pasa un objeto de String, se comparan las strings. Pero cuando se pasa el objeto de StringBuffer, las referencias se comparan porque StringBuffer no anula el método equals de la clase Object .
Por ejemplo, el siguiente primer programa imprime falso y el segundo imprime verdadero.
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)); } }
Producción:
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)); } }
Producción:
true
Publicación traducida automáticamente
Artículo escrito por Niraj_Pandey y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA