Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
 Аватар для Fenix78563
165 / 11 / 4
Регистрация: 17.11.2015
Сообщений: 92

Применение == или equals

18.01.2017, 12:58. Показов 1104. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, форумчане.

В яве можно сравнивать объекты через ==, а можно через equals. И если для строк на хабре и т.п. сайтах есть подробные объяснения, то как быть в других вариантах не очень то и понятно.

В связи с этим вопрос - где уместно применять "==", а где лучше equals?

Заранее спасибо
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.01.2017, 12:58
Ответы с готовыми решениями:

Чем правильно пользоваться для сравнения строк - equals или compareTo ?
Все собираюсь спросить: Если я в Си инициализирую строку, а потом захочу ее изменить в сторону увеличения, то должен использовать...

При использовании непереопределённого equals, что сравнивается- ссылки, или значения, которые по этим ссылкам лежат?
Я решил прочесть об этом в стандарте, куда уж вернее! Чёрта с два. Нет там ответа. А ведь вопрос конкретен донельзя и ответ на него должен...

Equals()
Таким образом, возникают два разных варианта. • Если проверка на равенство реализована в подклассе, правило симметрично- сти требует...

5
1 / 1 / 0
Регистрация: 18.01.2016
Сообщений: 18
18.01.2017, 13:12
оператор "==" применяется только для сравнения примитивов. Если сравнивать два Integer, то тогда там неявно будет вызываться метод java.lang.Integer.valueOf(int), и прикольней всего что он будет работать с числами в пределах от -128 до 127,
если сделать
Java
1
2
3
Integer a1 = 300;
Integer a2 = 300;
System.out.println(a1==a2);
Результатом выполнения будет:

false

Для ссылочных типов и своих кастомных классов лучше использовать переопределенные методы equals(), compareTo(obj o1, obj o2)
1
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
18.01.2017, 13:47
Цитата Сообщение от b1ger Посмотреть сообщение
Если сравнивать два Integer, то тогда там неявно будет вызываться метод java.lang.Integer.valueOf(int), и прикольней всего что он будет работать с числами в пределах от -128 до 127,
Не правда. Ничего неявного вызывать не будет, оператор == как сравнивал ссылки для объектов, так и сравнивает. А указанный вами интервал просто напросто кэшируется в классе Integer

Добавлено через 2 минуты
гляньте класс IntegerCache
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
18.01.2017, 14:37
Цитата Сообщение от Fenix78563 Посмотреть сообщение
В связи с этим вопрос - где уместно применять "==", а где лучше equals?
если хотите сравнивать ссылки, используйте ==. Если объекты, то equals
1
75 / 61 / 29
Регистрация: 20.04.2015
Сообщений: 415
29.08.2018, 07:09
Цитата Сообщение от KEKCoGEN Посмотреть сообщение
если хотите сравнивать ссылки, используйте ==. Если объекты, то equals
дополню что если сравниваешь примитив то тоже ==
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
29.08.2018, 08:06
некромант
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.08.2018, 08:06
Помогаю со студенческими работами здесь

This:: equals
В ссылке на метод допускается указывать ссылку this. Например, ссылка на метод this:: equals равнозначна лямбда-выражению х -> this....

Hashcode и Equals
Здравствуйте! Возникла необходимость выяснить точные ответы на следующие вопросы: Добавлено через 3 минуты 1) Как работает hashcode...

Override Equals
Вот в чем проблема,хочу перегрузить этот метод для моего класса,но IDEA пишет,что method doesnt override method from its superclass. Вот...

Equals() и == не работают
Только начал учить Java и столкнулся с проблемой сравнивания строк (не ссылок на них) и не могу понять где ошибка: void loadText() { ...

string.equals() и ==
String s1=new String("aaa"); String s2=new String("aaa"); if (s1==s2) System.out.print("true"); else...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru