Бокс и распаковка равенство java - PullRequest
0 голосов
/ 01 февраля 2020
    Integer a = new Integer(3);
    Integer b = 3;

        System.out.println(a==b);
        System.out.println(a.equals(b));

output :
false
true

Может кто-нибудь объяснить, почему этот пример действителен?

1 Ответ

1 голос
/ 01 февраля 2020

Оператор == сравнивает равенство объектов . Поскольку оба объекта имеют свой собственный идентификатор / местоположение в памяти кучи, эта проверка оценивается как ложное.

Метод .equals () сравнивает фактические значения обоих объектов, в данном случае 3 , что верно.

...