![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Zefick |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 3.12.2009 Репутация: 1 Всего: 2 |
В классе JComponent в функции setUIProperty сравнение строк осуществляется с помощью оператора ==. Хотелось бы знать, почему так. Разве это работает?
Я писал тест, который считывает строку из консоли и сравнивал её с тем, что должно быть. Когда сравнение equals давало положительный результат, то == давало ложь. Правда, если я создавал заранее переменную с заданным значением и сравнивал её с такой-же строкой, то == возвращал истину. |
|||
|
||||
dobrolub |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 385 Регистрация: 18.12.2009 Где: Vancouver, Canada Репутация: 11 Всего: 16 |
компилятор создаёт единственный объект для каждого стринга значение которого можно вычислить во время компиляции.
То-же самое достигаемо с помощью метода intern() для Стринга. Пример:
ожидаемый результат:
Это сообщение отредактировал(а) dobrolub - 13.4.2010, 06:28 |
||||
|
|||||
MaxPayneC |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 324 Регистрация: 18.2.2006 Репутация: 5 Всего: 9 |
||||
|
||||
dobrolub |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 385 Регистрация: 18.12.2009 Где: Vancouver, Canada Репутация: 11 Всего: 16 |
А... Я думал в данном случае "some string" будет в пуле констант в классе, а в JVM в специально отведённом для скомпиллированного когда, и всего, что остаётся 'неизменным', участке памяти.(perm gen) , а созданный на его основе String - копия на heap.
Это сообщение отредактировал(а) dobrolub - 13.4.2010, 09:35 |
|||
|
||||
MaxPayneC |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 324 Регистрация: 18.2.2006 Репутация: 5 Всего: 9 |
Оператор new всегда создает новый объект, а создание строки путем String s = "asdf"; сначала поищет в пуле строк, и если найдет, вернет ссылку на существующий объект.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |