Comparación de cadenas con operador lógico en Java

Al comparar dos cadenas, me enseñaron que no deberíamos usar el operador lógico (==). Deberíamos usar String.equals (String) para la comparación. Sin embargo, veo que el siguiente código cumple e imprime "Hello Friend"con el último JDK (1.6_23). Traté de buscar y no pude encontrar ninguna referencia. ¿Desde cuándo sucede esto?

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");
        }
    }
}

Respuestas a la pregunta(7)

Su respuesta a la pregunta