Java Integer pool. Почему?
Я везде читал, что когда вы определяете Integer в Java от -128 до 127, вместо создания нового объекта он возвращает уже созданный объект.
Я не вижу смысла делать это, кроме как позволить начинающим программистам сравнивать объекты Integer с==
чтобы узнать, совпадают ли они с одним числом, но я думаю, что это плохо, потому что они уверены, что могут сравнить любое целое число с==
, а также учит плохой практике на любом языке программирования: сравнивая содержимое двух «разных» объектов с==
.
Есть ли другая причина, по которой это делается? Или это просто плохое решение при разработке языка (на мой взгляд), как необязательная точка с запятой в JavaScript?
РЕДАКТИРОВАТЬ: я вижу здесь, что они объясняют поведение:Почему поведение пула констант Integer изменяется на 127?
Я спрашиваю, почему они разработали это для такого поведения, а не почему это происходит.