![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| aksans |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 18.4.2007 Репутация: нет Всего: нет |
Я наверно задам глупый вопрос, но все же я хочу узнать ответ на его вопрос а сама разобраться не могу.
и в итоге получаю a=b false a=c false c=b true первые две строки кажутся логичными потому что сравниваются ссылки на объекты, третья строка подсказывает мне что b и c ссылаются на один объект. Почему так происходит? |
|||
|
||||
| Temdegon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 11.10.2008 Где: Minsk Репутация: 7 Всего: 9 |
При инициализации переменных в коде в виде строкового литерала, компилятор создает только один экземпляр этой строки. Т.о. обе переменные ссылаются на один объект.
|
|||
|
||||
| aksans |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 18.4.2007 Репутация: нет Всего: нет |
то есть если я потом поменяю значение то создастся еще один объект?
|
|||
|
||||
| Temdegon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 11.10.2008 Где: Minsk Репутация: 7 Всего: 9 |
да. String в Java неизменяемый обькета. Так что при его изменении всегда создается новый экземпляр.
|
|||
|
||||
| aksans |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 18.4.2007 Репутация: нет Всего: нет |
понятно. спасибо за разъяснения
|
|||
|
||||
![]()
|
| Правила форума "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. |