Сколько объектов создано? - PullRequest
0 голосов
/ 22 февраля 2020

Есть ли у нас 6 логические объекты в этом случае?

Boolean b1 = true;
Boolean b2 = true;
Boolean b3 = true;
Boolean b4 = new Boolean(true);
Boolean b5 = new Boolean(true);
Boolean b6 = new Boolean(true);

1 Ответ

2 голосов
/ 22 февраля 2020

Есть четыре разных объекта. В реализации Oracle Java отдельные объекты имеют различные IdentityHashCodes. Итак:

        Set<Integer> dups = Stream
                .of(b1, b2, b3, b4, b5, b6)
                .map(System::identityHashCode)
                .collect(Collectors.toSet());

        System.out.println(dups.size()); // prints 4 

И в качестве примечания, конструктор Boolean имеет вид deprecated.

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