| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > инициализация строки их сравнение |
| Автор: aksans 25.1.2011, 22:51 | ||
Я наверно задам глупый вопрос, но все же я хочу узнать ответ на его вопрос а сама разобраться не могу.
и в итоге получаю a=b false a=c false c=b true первые две строки кажутся логичными потому что сравниваются ссылки на объекты, третья строка подсказывает мне что b и c ссылаются на один объект. Почему так происходит? |
| Автор: Temdegon 25.1.2011, 23:01 |
| При инициализации переменных в коде в виде строкового литерала, компилятор создает только один экземпляр этой строки. Т.о. обе переменные ссылаются на один объект. |
| Автор: aksans 25.1.2011, 23:11 |
| то есть если я потом поменяю значение то создастся еще один объект? |
| Автор: Temdegon 25.1.2011, 23:20 |
| да. String в Java неизменяемый обькета. Так что при его изменении всегда создается новый экземпляр. |
| Автор: aksans 25.1.2011, 23:42 |
| понятно. спасибо за разъяснения |