Ver Mensaje Individual
  #13 (permalink)  
Antiguo 31/03/2014, 12:52
posman
 
Fecha de Ingreso: enero-2008
Mensajes: 614
Antigüedad: 16 años, 3 meses
Puntos: 57
Respuesta: se puede comparar un primitivo con un object

La comparacion de las cadenas es correcta. Al utilizar == se compara la posicion en memoria de los objetos asi que los dos objetos String no ocupan el mismo lugar de memoria, aunque tengan la misma cadena (esto es diferente cuando asignas un valor literal a la variable en lugar de crear objetos)

Código Java:
Ver original
  1. String cadena1 = new String("Hola");
  2. String cadena2 = new String("Hola");
  3. String cadena3 = "Hola";
  4. String cadena4 = "Hola";
  5.  
  6. System.out.println("cadena1 == cadena2: " + (cadena1==cadena2 ? "iguales" : "distintos"));
  7. System.out.println("cadena3 == cadena4: " + (cadena3==cadena4 ? "iguales" : "distintos"));
Si sigues utilizando static en la clase preguntas2, borralo. Tambien te recomiendo que hagas las pruebas pidiendo al usuario los valores de las variables. Si asignas los valores dentro del codigo seguramente el compilador hara algunos ajustes para optimizar y obtendras resultados como los que estas obteniendo.

Si utilizo tu codigo, elimino static, y pido el valor de hh3 al usuario obtengo

Código Texto:
Ver original
  1. distintos
  2. -----
  3. no se puede comparar

Te recomiendo que revises un libro de los que se usan para prepararse para la certificacion de Java SE. En esos libros se explican con mayor detenimiento todas estas cosas que estas preguntando

Última edición por posman; 31/03/2014 a las 12:57