10000;
Integer c = 100;
Integer d = 100;
a==b //false
c==d //true
Почему так?
пул чисел числа до 255 что ли, точно не помню, не создаются заново хочешь явно создать новый объект - присваивай через new Integer(100)
Понял, а то уже полещ в байт код чтоб понять как это работает. Чуть сломало меня) Спасибо, пойду гуглить)
Нашел ответ, [-128;127] пул)
Эти границы можно ещё самому указывать
https://www.geeksforgeeks.org/java-integer-cache/
Если память не изменяет, в байт код это излишне, т.к. этот кеш в сорцах Интеджера можно лицезреть
да, погуглил. и действительно это хранится в кеше и реализовано нативом. если все таки я ту информацию нашел)
https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/lang/Integer.java
Integer - объект. Сравнение объектов по == не прокатывает.
во-первых, в данном случае это некорректный ответ. во-вторых, ответ правильный был дан ниже.
Обсуждают сегодня