A
Art of Code
@codeof_art2.2K подп.
2.0Kпросмотров
89.4%от подписчиков
21 января 2026 г.
Score: 2.2K
Задача на сравнение чисел в джаве public static void main(String[] args) { Integer stupidNum1 = 127; Integer stupidNum2 = 127; Integer stupidNum3 = Integer.parseInt("127"); Integer stupidNum4 = 128; Integer stupidNum5 = 128; Integer stupidNum6 = -129; Integer stupidNum7 = -129; System.out.println(stupidNum1 == stupidNum2); System.out.println(stupidNum1 == stupidNum3); System.out.println(stupidNum4 == stupidNum5); System.out.println(stupidNum6 == stupidNum7); } Что будет выведено на экран при сравнении этих чисел? Результат: true true false false Объяснение: В джаве значения в диапазоне от -128 до 127 включительно хранятся в Integer кэше. Если инициализируется переменная со значением в указанном диапазоне, объект из кэша будет использован повторно => одна и та же ссылка на один и тот же объект. Если значение не входит в диапазон, создаётся новый объект в куче, и при проверке на равенство через "==" сравниваться будут ссылки на разные объекты. При создании значения через parseInt(): возвращается примитив int -> автоупаковка в Integer -> генерация вызова valueOf(), который проверяет, находится ли значение в диапазоне кэша, и либо возвращает кэшированный объект, либо создаёт новый объект типа Integer. В общем, помните об этом, но сравнивайте числа через equals(), чтобы не заморачиваться. @codeof_art
2.0K
просмотров
1421
символов
Нет
эмодзи
Нет
медиа

Другие посты @codeof_art

Все посты канала →
Задача на сравнение чисел в джаве public static void main(St — @codeof_art | PostSniper