Sobre la igualdad de cuerdas en JAVA

Hay dos instrucciones de uso:

1. Para las variables de cadena, cuando se usan los métodos "==" y "equals ()" para comparar cadenas, el método de comparación es diferente.

 1. "==" compara los valores de las dos variables mismas, es decir, las primeras direcciones de los dos objetos en la memoria.

(En Java, la primera dirección de un objeto es la dirección inicial que almacena en la memoria, y la dirección detrás de él es la dirección utilizada para almacenar los diversos atributos que contiene, por lo que se utilizan múltiples bloques de memoria para almacenar cada objeto en la memoria. Parámetros, y a través de esta primera dirección puede encontrar el objeto, y luego puede encontrar las diversas propiedades del objeto)

 2. "equals ()" compara si el contenido contenido en la cadena es el mismo.

prueba de 

paquete ; Solución de clase pública  { public static void main (String [] args) { 
        String s1, s2, s3 = "abc", s4 = "abc" ; 
        s1 = nueva cadena ("abc" ); 
        s2 = nueva cadena ("abc" ); 
        System.out.println ( "s1 == s2:" + (s1 == s2)); 
        System.out.println ( "s1 == s3:" + (s1 == s3)); 
        System.out.println ( "s3 == s4:" + (s3 == s4)); 
        System.out.println ( "s1.equals (s2):" + (s1.

      "s1.equals (s3):" + (s1.equals (s3))); 
        System.out.println ( "s3.equals (s4):" + (s3.equals (s4))); 
    } 
}

 

 Nota:

StringBuffer s1 = new StringBuffer ("a" ); 
 StringBuffer s2 = new StringBuffer ("a" ); 
 System.out.println ( "s1.equals (s2):" + (s1.equals (s2))); // 结果 为 falso

 

Explicación: El método igual no se redefine en la clase StringBuffer, por lo que este método proviene de la clase Object,

 (El método igual en la clase Object se usa para comparar la "dirección", por lo que es igual a falso)

 

Supongo que te gusta

Origin www.cnblogs.com/zsgbmyblog/p/12684409.html
Recomendado
Clasificación