O darlan deu a resposta acima, para comparar o conteudo de uma String usamos o .equals() porque String é um objeto e usamos == para comparar se a referencia de um objeto é a mesma, exemplo:
Object a = new Object();
Object b = a;
a == b será true.
Agora Se existir a seguinte situação:
Object a = new Object();
Object b = new Object();
Aqui a e b já não estão apontando mais para a mesma referência então vai dar false a se voce comparar a == b.
então para comparar conteudo de String use .equals()
senão me engano ele é possível comparar as Strings e dar true da maneira que você citou porque quando criamos a String dessa forma String x = “a”, e String b = “a”, o java comparando num mesmo local(Que nesse momento não me recordo o nome) se ja existe uma String com o mesmo e vai considerar da mesma instancia se já existe uma String com aquele valor.
Se nesse mesmo exemplo ele alterar o valor de b para teste por exemplo vai dar false mas o == ainda esta comparando as referencias.
Para comparar conteúdo de String use sempre .equals()