Pula Integer Java. Czemu?

Czytałem wszędzie, że po zdefiniowaniu liczby całkowitej między -128 a 127 w Javie zamiast tworzenia nowego obiektu zwraca on obiekt już utworzony.

Nie widzę sensu robić tego inaczej, jak pozwolić początkującym programistom na porównanie obiektów Integer z== aby sprawdzić, czy są to te same liczby, ale myślę, że to źle, ponieważ są przekonani, że mogą porównać dowolną liczbę całkowitą==, a także uczy złej praktyki w dowolnym języku programowania: porównując zawartość dwóch „różnych” obiektów z==.

Czy jest jakiś inny powód, dlaczego tak się dzieje? Czy może jest to po prostu zła decyzja przy projektowaniu języka (moim zdaniem) jak opcjonalny średnik w JavaScript?

EDYCJA: Widzę tutaj, że wyjaśniają zachowanie:Dlaczego zachowanie stałej puli Integer zmienia się na 127?

Pytam, dlaczego zaprojektowali to zachowanie, a nie dlaczego to się dzieje.

questionAnswers(2)

yourAnswerToTheQuestion