![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 8 Всего: 191 |
Ответ я знаю. Но почему так? По каким законам физикиJava? На первый взгляд кажется, что 4, из-за кэширования, но нет. ![]() Это сообщение отредактировал(а) Samotnik - 11.1.2012, 00:27 |
|||
|
||||
temak |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 11.1.2012 Где: Minsk, RB Репутация: нет Всего: нет |
И какой же тут ответ? и почему именно такой?
|
|||
|
||||
Pretorian |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 9.12.2011 Где: нигде Репутация: 1 Всего: 1 |
Мне кажется 5 объектов. Для b1-b10 один объект и 4 для остальных.
|
|||
|
||||
dobrolub |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 385 Регистрация: 18.12.2009 Где: Vancouver, Canada Репутация: 11 Всего: 16 |
Создаётся 4 объекта.
b1 - b10 == Boolean.TRUE; Boolean.TRUE, строго говоря не создаётся этим кодом при настройках используемых по умолчанию. |
|||
|
||||
Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 8 Всего: 191 |
||||
|
||||
Pretorian |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 9.12.2011 Где: нигде Репутация: 1 Всего: 1 |
Для b1-b10 один кэшированный объект (т.е. все эти ссылки ссылаются на одно и тоже), а для остальных 4-ёх мы создаём отдельные объекты оператором new
|
|||
|
||||
Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 8 Всего: 191 |
Pretorian, а есть ссылка на оф документацию?
![]() |
|||
|
||||
Pretorian |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 9.12.2011 Где: нигде Репутация: 1 Всего: 1 |
к сожалению нет. Об этом я прочитал в книге "Язык программирования Java и среда Netbeans" автор Монахов. Выдержка из 7-ой главы:
Это к вопросу о переменных b1-b10, почему они ссылаются на одно и то же. Ну а с оператором new и так вроде понятно. С помощью него мы принудительно выделяем новую область памяти под объект. И тут уже не важно, что два объекта (созданных оператором new) могут иметь одинаковое содержимое. |
|||
|
||||
Dummy |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 21.5.2007 Репутация: 9 Всего: 19 |
А вот: JLS, 3rd edition. Глава "5.1.7 Boxing Conversion", последняя фраза перед "Discussion":
|
|||
|
||||
Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 8 Всего: 191 |
Dummy,
![]() |
|||
|
||||
dobrolub |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 385 Регистрация: 18.12.2009 Где: Vancouver, Canada Репутация: 11 Всего: 16 |
Мы пришли к конcенсусу, что на вопрос: "Сколько будет создано объектов?", правильный ответ - 4?
Это сообщение отредактировал(а) dobrolub - 11.1.2012, 20:41 |
|||
|
||||
Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 8 Всего: 191 |
||||
|
||||
dobrolub |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 385 Регистрация: 18.12.2009 Где: Vancouver, Canada Репутация: 11 Всего: 16 |
Повторю твой вопрос: "сколько объектов будет создано"?
Объект Boolean.TRUE (b1-b10) создаётся раньше чем твой код выполняется. Поэтому правильный ответ - 4 объекта создано ТВОИМ кодом. ![]() |
|||
|
||||
Stolzen |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1041 Регистрация: 17.10.2005 Репутация: 23 Всего: 48 |
Выводит 5 |
|||
|
||||
Pretorian |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 9.12.2011 Где: нигде Репутация: 1 Всего: 1 |
Вот кстати документация об одинаковых литералах в коде JLS 3.10.5
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |