Java - duda operadores == y equals.

   
Vista:

duda operadores == y equals.

Publicado por Bernabé (1 intervención) el 17/10/2009 17:12:36
Hola, tengo una duda respecto los operadores == i equals. Se entiende que el operador == compara si dos objetos són el mismo objeto (los dos estan en la misma dirección de memoria), mientras que el operador equals es un método de la clase Object que puede ser sobreescrito para devolver si dados dos objetos estos tienen los mismos valores. Así por ejemplo, teniendo dos Strings tales como:
String1 = "hola";
String2 = "hola",

String1.equals(String2) devolverá true. Hasta aquí OK.

Mi pregunta és porque si comparo String1 == String2 también me indica que es cierto en el caso de los Strings. No son dos objetos diferentes? con otro tipo de objetos no me pasa.

Agradeceré los comentarios.

Bernabé.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:duda operadores == y equals.

Publicado por kendru (1 intervención) el 19/10/2009 20:30:01
emmm

no estoy seguro, pero creo que sucede porque los valores de String1 y String2
son la constante "hola", de alguna manera el compilador dejara esa constante como un solo objeto, por lo tanto al realizar la comparación con el operador == el objeto sera el mismo .. y el resultado de la comparación es verdadero.

el operador == funciona con strings solo cuando comparas constantes, ya que si creas 2 objetos con el mismo contenido, y los comparas usando el operador == el resultado sera FALSO pues son distintos objetos.

ej:

String hola1 = "hola";
String hola2 = new String("hola");
if(hola1 == hola2){
System.out.print("son iguales");
}else{
System.out.print("son distintos");

}

devuelve: son distintos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar