В случае когда говорим "не равны" или "равны" мы понимаем под этим равенство с точки зрения ссылки на объект или с точки зрения равенства всех его полей?
У класса object так не работает. Обекты равны, а хеш коды не равны Object c = new Object(); Object d = new Object(); System.out.println((c.hashCode()==d.hashCode()));//false
Да, дефолтовая реализация функции hashCode() генерирует случайное число, и при каждом новом запуске программы хешкод одного и того же объекта будет разный. Поэтому сравнивать объекты, без переопределенного хешкода, по хешкоду - мягко говоря стрёмно)
Object является не главным, а корневым классом(да, разница есть, особенно в свете таких понятий, как "однокорневая иерархия"). "У нас с тобой объекты разные, но у них одинаковый хэшкод. Это - коллизия, это - неверно. Поэтому мы будем его позже переопределять". Лол, а если переопределить хэшкод, то коллизий не возникнет? Лол, что она несет вообще? Иди на кухню борщ варить. Невозможно избавиться от коллизий, сколько не переопределяй хэшкод. И то, что коллизия возникает - это не ошибка, это совершенно нормальная ситуация, но только при условии, что хэшфункция написана грамотно и, скажем, помогает создать оптимальное распределение по ячейкам хэшмапы, например. Учи матчасть, прежде чем других учить!
В случае когда говорим "не равны" или "равны" мы понимаем под этим равенство с точки зрения ссылки на объект или с точки зрения равенства всех его полей?
с точки зрения равенства всех его полей
С точки зрения равенства выбранных разработчиком полей (не обязательно всех).
Спасибо за видео!
Можно вопрос а когда вы скретч продолжите снимать
У класса object так не работает. Обекты равны, а хеш коды не равны
Object c = new Object();
Object d = new Object();
System.out.println((c.hashCode()==d.hashCode()));//false
Да, дефолтовая реализация функции hashCode() генерирует случайное число, и при каждом новом запуске программы хешкод одного и того же объекта будет разный. Поэтому сравнивать объекты, без переопределенного хешкода, по хешкоду - мягко говоря стрёмно)
Каждый раз при слове "да" в этом видео перед глазами всплывала картинка Киркорова.
Thanks
Очень интересно! У тебя всё больше и больше подписчиков! У меня с подписчиками туго :(
сладкий голос!🤭😋😍🤤
Увеличьте пожалуйста шрифт, ну действительно очень мелко!!!
А так познавательно!
Информация очень важна, но мелко, дискомфорт какой то (
Copyed by Habr
начало вообще не о чем
Object является не главным, а корневым классом(да, разница есть, особенно в свете таких понятий, как "однокорневая иерархия"). "У нас с тобой объекты разные, но у них одинаковый хэшкод. Это - коллизия, это - неверно. Поэтому мы будем его позже переопределять". Лол, а если переопределить хэшкод, то коллизий не возникнет? Лол, что она несет вообще? Иди на кухню борщ варить. Невозможно избавиться от коллизий, сколько не переопределяй хэшкод. И то, что коллизия возникает - это не ошибка, это совершенно нормальная ситуация, но только при условии, что хэшфункция написана грамотно и, скажем, помогает создать оптимальное распределение по ячейкам хэшмапы, например. Учи матчасть, прежде чем других учить!