Comparação de cadeias com operador lógico em Java

Ao comparar duas strings, fui ensinado que não devemos usar o operador lógico (==). Devemos usar String.equals (String) para a comparação. No entanto, vejo que o código a seguir está em conformidade e imprime "Hello Friend"com o JDK mais recente (1.6_23). Tentei pesquisar e não encontrei nenhuma referência. Desde quando isso está acontecendo?

public class StringComp{
public static void main(String args[]){
        String s = "hello";
        if(s=="hello"){
                System.out.println("Hello Friend");
        }else{
                System.out.println("No Hello");
        }
    }
}

questionAnswers(7)

yourAnswerToTheQuestion