разница между equals () и hashCode ()

Я хочу получить краткое определение equals (), "==" и hashCode (). Если я запускаю следующий код, значит, вывод будет «true false 2420395 2420395». Но я понял, что метод equals () сравнивает строку, а "==" сравнивает ссылку. Но в выходных данных метод hashCcode () печатает ссылочный номер для обеих строк как один и тот же, тогда почему «==» возвращает «false».

            String str = "Name";
    String str1 = new String("Name");

    if(str.equals(str1))
        System.out.println("true");
    else
        System.out.println("false");
    if(str==str1)
        System.out.println("true");
    else
        System.out.println("false");

    System.out.println(str.hashCode());
    System.out.println(str1.hashCode());
}

Ответы на вопрос(7)

Ваш ответ на вопрос