Почему он возвращает false? HashCode также равен - PullRequest
1 голос
/ 24 января 2020

Я пытаюсь решить эту проблему, но возвращается false. HashCode и данные в обоих литералах одинаковы, если

String s1="java";
String s2="JAVA".toLowerCase();
System.out.println(s1==s1);

Reference image

1 Ответ

1 голос
/ 24 января 2020
public class HelloWorld{

     public static void main(String []args){
        System.out.println("Hello World");
         String s1="java";
        String s2="JAVA".toLowerCase();
        System.out.println(s1.hashCode());
        System.out.println(s1.hashCode());
        System.out.println(s1==s2);
        System.out.println(s1.equals(s2));
     }
}

Output

.equals() будет сравнивать значения переменных.

== будет сравнивать значения областей памяти переменных.

Hashcode рассчитывается на основе содержимого строки, а не ее местоположения.

Поскольку вы используете String class, он относится к справочному типу. Найдите документацию здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...