![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Се ля ви |
|
||||
![]() Java/SOAрхитектор ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2016 Регистрация: 5.6.2004 Где: place without tim e and space Репутация: 8 Всего: 127 |
WTF? Зато, если выходим за диапазон типа "byte":
По крайней мере в последней, 7-й Java такая штука наблюдается (в более ранних не тестировал). Кто-нибудь может объяснить - почему такое происходит? -------------------- |
||||
|
|||||
danilych |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 72 Регистрация: 2.2.2011 Репутация: 3 Всего: 3 |
Происходит так потому, что числа до 128 типа Integer java машина кеширует. Этот параметр можно и увеличить (вроде как вот этот флаг XX:+EliminateAutoBox). Т.е. если вы в коде задаете числа типа Integer до 128, то объекты класса Integer не создаются, а берутся из кэша JVM, соответственно и переменные ссылаются на одну и ту же область памяти. Если в кэше нет нужного объекта, то он создается (в вашем случае один для y, а другой для x)
|
|||
|
||||
Kircul |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 20.2.2007 Репутация: 6 Всего: 7 |
Autoboxing это посути ничто иное как вызов метода Integer.valueOf(int). Заглянуть в исходный кода думаю проблемы не составит ;)
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |