Java puede comparar cadenas de varias maneras. 
Primera forma: Utilizando el operador == , este operador no compara las cadenas, sino las instacias, osea:
Nos da como resultado "No son iguales" , porque apesar de tener los mismos caracteres, cadena_1 y cadena_2, son dos instancias DIFERENTES.
Ahora que si hacemos esto:
Nos da como resultado "Son Iguales" , que paso aqui entonces, es que el compilador de java, al ver que tienes la misma cadena, crea solo UNA INSTANCIA, claro que esto lo hace internamente.
Segunda forma: Esta es la mejor forma, ya que te olvidas de instancias y demas, usando el metodo EQUALS().
Tercera forma: el metod COMPARETO(), este devuelve 0 si ambas cadenas tienen el mismo contenido, negativo si el String es menor -va antes- que el parámetro que se le pasa y positivo si es mayor. Es decir :
Nos como resultado "cadena1 y cadena2 son iguales" , si cambiamos a cadena2="Hola Mundo" , el resultado es "cadena1 va antes que cadena2 " , si en cambio cadena1="Mouse dice Hola", resultado es "cadena2 va después que cadena1 " .
Gracias por el aporte. sencillo, bien explicado y al punto.
ResponderEliminarmuy buen aporte gracias
ResponderEliminarpero como le hago para comparar una cadena si lo que quiero encontrar esta en un objeto diferente.
ResponderEliminarpor ejemplo tengo una variable nombre en una clase X, y ese nombre lo quiero encontrar en una clase principal....no se si me explique porfa ayudaaaaaa
ya no gracias ya resolbi mi duda por mi mismo el poder de no rendirse xD
ResponderEliminarMuy buena info, te dejo un link mi web y a un post que hablo de lo mismo. Pero tambien agrego compareToIgnoreCase().
ResponderEliminarhttp://java-white-box.blogspot.com.ar/2013/11/java-player-como-comparar-cadenas-como.html
Saludos