Мужик, просто громадное спасибо, который раз меня уже выручаешь!!!
@ВладимирМокров-ю7ц5 жыл бұрын
Коротко, лаконично, по делу!!! Спасибо тебе добрый человек
@arhitutorials5 жыл бұрын
Спасибо за поддержку!
@tweak77082 жыл бұрын
@@arhitutorials подскажите пожалуйста , как IDEA автоматически переопределяет методы как у Вас. У меня при переопределении выходит все по стандарту. @Override public String toString() { return super.toString()} @Override public int hashCode() { return super.hashCode() } Понимаю может вопрос тупой , поэтому заранее извиняюсь... А так в целом все последовательно и понятно , спасибо.
@RumEvo Жыл бұрын
@@tweak7708 если я не ошибаюсь, вариант в видео был сделан ручную
@YoungRembo7 ай бұрын
@@tweak7708 если ты работаешь в Intellij IDEA то нажми Alt + Insert и выбери соответствующий пункт
@musiclife26412 жыл бұрын
Спасибо за Ваши старания, один из ЛУЧШИХ каналов про программирование для новичков)
@berkana87314 жыл бұрын
Благодарю за грамотную подачу материала, пояснение ньюансов и доступность исходников☺ ☺ ☺ Очень помагает наличие теоретической составляющей, а не просто кода!
@МихаилБезуглов-ь4ы5 ай бұрын
Спасибо! Всегда с большим удовольствием смотрю ваши видео!
@Lok1goD3 жыл бұрын
Огонь! Отличные примеры, лучшее что я нашел на просторах ютуба! Спасибо молодой человек! От меня лойс и подписка!
@whatyoumean14986 ай бұрын
Не жалко потратить время и настрочить комментарий) Спасибо, очень полезное и приятное видео.
@ivans76903 жыл бұрын
Тот случай, когда видео нужно СМОТРЕТЬ ДО КОНЦА! Самое вкусное (и полезное) в концовке!
@nicholaswhite73518 ай бұрын
Очень хорошая подача материала. Огромное спасибо. Всех баг автору.
@severustvr8202 Жыл бұрын
15 минут и все понятно. Спасибо за труд!
@ermilovnik3 жыл бұрын
Спасибо за твои видео, все понятно без лишней воды
@alex_danich3 жыл бұрын
Красавчик! Коротко и ясно, как и надо.
@smthsmth1113 жыл бұрын
Спасибо за видео. Очень доходчиво объясняется принципы работы этих методов, всё понятно 👍
@радиостанция5 жыл бұрын
Спасибо, очень помог. Лайк, подписка.
@Ren-z5m3t Жыл бұрын
Просто Гуру! Спокойный, наглядный и понятный стиль изложения материала. Нечасто такое можно встретить
@Krasnolesye3 жыл бұрын
Видео, которое закрывает все пробелы в этой области. С удовольствием посмотрел. Молодца!
@МаксМакс-ч8к2 жыл бұрын
Всем доброго дня! Обращаюсь к автору: я пересмотрел множество различных видео уроков, Ваши как минимум одни из лучших!!! Если у Вас будет время и желание, сделайте уроки по Java для начинающих. Уверен, что многие оценят!!!
@sanix183 Жыл бұрын
Сергей, ты большой молодец! Спасибо!
@antonignatenko77762 жыл бұрын
дай бог тебе здоровья, спасибо за такое отличное объяснение
@ДмитрийСамсонов-я2о2 жыл бұрын
Восхитительное объяснение!
@Antares198714 жыл бұрын
Спасибо за видео. Очень понятно рассказали.
@alexpushkarev8003 Жыл бұрын
благодарю, очень доходчиво объяснил
@maksimsimakou38483 жыл бұрын
Хорошее объяснение! Спасибо!
@ИмяДрезден2 жыл бұрын
Классное видео. Очень понятно и интересно. Спасибо большое !
@evgenyivanov7443 жыл бұрын
спасибо сергей!
@divergenny3 жыл бұрын
Благодарю за ваши труды
@Das.Kleine.Krokodil Жыл бұрын
Отличные уроки. Спасибо
@djadjaandrey8 ай бұрын
Спасибо за видео!
@filsdepers Жыл бұрын
Спасибо❤
@ЮрийЮрьев-х2т4 жыл бұрын
Спасибо! Толково.
@_Yar_3 жыл бұрын
Супер! Спасибо!
@BessRS3 жыл бұрын
Открыл глаза,спасибо
@anastasiabruks97002 жыл бұрын
как вы так хитро выделили все нужные для изменения поля result и поменяли их на hash? какие клавиши зажимать?)
@dmitrysmirnov94494 жыл бұрын
Сергей, добавь возможность донатить ) Очень ценные видео, спасибо большое!
@igortarasov44822 жыл бұрын
Счастья, здоровья, жену послушную
@catalina89844 жыл бұрын
Хорошее объяснение, спасибо
@SergiVRN Жыл бұрын
А какие пункты Вы выбирали при автогенерации? или вы руками добавили 31?
@maxbasov54852 жыл бұрын
Только начал учить Java и сразу влюбился в этот язык за его строгость и предсказумость, а тут это!!)))) НУ ЗАЧЕМ?)) Есть все таки что-то от сатаны в этих языках с приставкой Java ))
@arhitutorials2 жыл бұрын
А по моему, все логично) Это вы еще видео про ковариантность/контравариантность не смотрели 😅
@johannesbrown88535 жыл бұрын
Очень доступно объясняешь. Спасибо! Продолжай в том же духе))) возможно лично или в соц сетях задавать вопросы о непонятных вещах в Java?
@arhitutorials5 жыл бұрын
Спасибо! Стараюсь) Конечно возможно. Только отвечаю иногда долго, потому что работа. Так же, если будет интересен Android, могу помочь с обучением: ответы на вопросы, задачи, code review, и все в таком духе.
@johannesbrown88535 жыл бұрын
Sergey Arkhipov Спасибо большое! Android планирую немного попозже. Сейчас конкретно практикую Java Core. Так как цель устроиться на Junior. Возможно по Java делать code review?)
@arhitutorials5 жыл бұрын
@@johannesbrown8853 упаковывай проект в zip и присылай на почту arhiser@gmail.com. Посмотрю и напишу отзыв.
@johannesbrown88535 жыл бұрын
Sergey Arkhipov спасибо!
@XIRON863 жыл бұрын
Интересный канал. Подписался. Хотел бы узнать, что необходимо знать, чтобы найти работу на вакансию java junior'a.
@Айлана-ж8л3 жыл бұрын
спасибо)
@Yogamassagekzn2 жыл бұрын
А про instanceof было уже где то? Почему this без точки и переменной?
@МихаилГордеев-я3б4 жыл бұрын
Здравствуйте, спасибо за контент, все доступно объясняете! Только у меня вопрос обязательно ли что б equals и hashcode использовали одинаковые поля? т.е. можно ли высчитывать хэшкод по одному полю а сравнивать в equals по трем полям?
@arhitutorials4 жыл бұрын
Все можно, только надо отдавать себе отчет, зачем это делать. А то так можно дойти до ситуации, когда объекты, равные по equals, будут иметь разный хеш-код. Тогда уже нельзя будет рассчитывать на то, что если хэш-код объектов разный то и объекты тоже разные. А значит equals() и hashcode() больше не согласованы и совместно не работают.
@МихаилГордеев-я3б4 жыл бұрын
@@arhitutorials Спасибо! Теперь точно понял)
@xaxelpx Жыл бұрын
У меня IDEA совсем в другом виде переопределила equals и hashCode. В методе hashCode вообще нет реализации, как на этом видео, только 'return Objects.hash(a, b)'.
@alexandrkomar4741 Жыл бұрын
Здравствуйте. получается что hashCode and equals вы переопределили сразу в видео на 4:13 минуте? и как на 11:05 вы выделили все слова и заменили их все одновременно?
@kensaitakeso2 жыл бұрын
Сергей, у меня такой вопрос, а почему в качестве кода hashCode не использовать например UUID? разве это не поможет избежать коллизий? или тут вопрос скорее в том на основе чего генерируется хэш?
@arhitutorials2 жыл бұрын
Два объекта с одинаковыми данными должны иметь одинаковые хэши. Это одно из свойств хэш функции. По этому просто так раздать всем UUID нельзя, надо генерировать на основе данных объекта.
@kensaitakeso2 жыл бұрын
@@arhitutorialsда, я понял. хеш генерится на основе данных. но тогда логичным думаю было бы использование md5, sha255 or crc32. или это просто долго?
@МарпехДалласский23 күн бұрын
а почему в реализации equals для иммутабельного объекта достаточно сравнения по хэшу? хэш же может совпадать у разных объектов
@arhitutorials23 күн бұрын
Для equals недостаточно. В случае, если хэши двух объектов одинаковые, надо разбираться, что у них внутри.
@altayski042 жыл бұрын
Приветствую! Сергей, если будет возможность показать перевод из двоичной системы в шестнадцатеричную минуя заход в десятичную.
@arhitutorials2 жыл бұрын
Привет. Есть идея сделать разбор алгоритма, который переводит числа из любой системы в любую. Как-нибудь сделаю.
@altayski042 жыл бұрын
@@arhitutorials О-О-о, интересно бы было. Я с JavRush иду по курсу, сюда пришел когда искал поиск второго минимального элемента в массиве. Сделал задачу перевода из двоичного в шестнадцатеричного через десятичное, вывод результата как надо, но некоторые пункты не проходили. Подписан, так что увижу если что.
@NikolaiStiazhkin Жыл бұрын
Только так можно достичь Дзена )))
@telephon3208 Жыл бұрын
слышала, что hashcode вычисляется лениво. поэтому перемещение объекта на другой адрес в памяти не меняет хэш
@arhitutorials Жыл бұрын
Вроде как да, один раз берется текущий адрес при первом запоосе, а потом все время выдаётся, даже если объект уехал в другое место.
@nikolas28145 жыл бұрын
Сделайте, пожалуйста, плейлисты
@arhitutorials5 жыл бұрын
Ок, сделаю в ближайшее время
@nikolas28145 жыл бұрын
@@arhitutorials спасибо))
@simplechannel78594 жыл бұрын
♥👍📹
@nameunknown-ut8jm2 жыл бұрын
Здравствуйте. Можете поподробнее объяснить на 4:27 " Contact contact = (Contact ) o " ! Вы об этом ничего не сказали. Так как от этой строки (которую я недопонял) идёт дальше построение кода на сравнение итд
@arhitutorials2 жыл бұрын
В сигнатуре метода equals параметр имеет тип Object, что даёт возможность сравнивать на equals объекты разных типов. В подавляющем большинстве случаев это не нужно, по этому в методе сразу проверяется, что аргумент имеет тот же тип. Если да, то аргумент приводится к соответствующему типу, contact = (Contact) o; И дальше уже идёт логика сравнения полей объектов.
@nameunknown-ut8jm2 жыл бұрын
@@arhitutorials спасибо
@Dmitri9152 жыл бұрын
как он сделал с 11:06 чтоб выделить и стереть сразу несколько частей и на место их добавит новый текст?
@Dmitri9152 жыл бұрын
неделя прошла, пока тишина((
@1SkyMan112 жыл бұрын
вероятно alt +j для выбора alt +shift+j для отмены
@1SkyMan112 жыл бұрын
@@Dmitri915 ctrl +ctrl +up or down и каретка клонируется
@Duskmage19915 жыл бұрын
Привет землякам))Можно ли позадавать иногда вопросы по джаве и по андроиду в личку ?)
@arhitutorials5 жыл бұрын
Привет, можно. На главной странице есть ссылка на фейсбук, можно туда писать. Я вообще думаю, не создать ли нам сообщество или канал в телеграмме, чтоб было удобнее обсуждать вопросы, делиться новостями и т.д. Как вам идея?)
@Duskmage19915 жыл бұрын
@@arhitutorials идея хорошая)думаю телеграмм канал было бы неплохо , ну и дискорд тоже можно)
@Duskmage19915 жыл бұрын
@@arhitutorials вы уже создали телеграмм канал или дискорд ?можно ссылку пожалуйста)
@arhitutorials5 жыл бұрын
@@Duskmage1991 Создал группу в Telegram: t.me/ArhiTutorials Добавил ссылку в шапку канала. Теперь будет у нас место для неформального общения, вопросов, взаимопомощи, новостей и прочего. Буду продвигать группу по мере возможности.
@alessandrostepanov21453 жыл бұрын
Кажется начинает проясняться. Что еще важно знать на собеседовании?
@vitaliilapov34984 жыл бұрын
Чому ти оголошував клас Contact статичним? в чому різниця з НЕ статичним класом?
@НазірСависько5 ай бұрын
Вложенные класс
@КаримовЛазиз-з3з3 жыл бұрын
объясните строчку Contact contact = (Contact) o;
@arhitutorials3 жыл бұрын
Это приведение типа переменной o к типу Contact. Функция equals имеет следующую сигнатуру: public boolean equals(Object o); - то есть, может принимать в качестве параметра объект любого типа. По этому внутри нужна проверка и приведение: if (!(o instanceof Contact)) return false; Contact contact = (Contact) o; А дальше, если нам передали объект типа Contact, тогда уже проверяем отдельные поля.
@anjelomanoranjan Жыл бұрын
Спасибо, Серега. Слава Украине!
@Das.Kleine.Krokodil Жыл бұрын
Спасибо. Позволю себе небольшой совет для шлифовки - можно чуть улучшить читабельность если поменять имена. Например вместо: *contacts.contains(contact2)* сделать: *phones.contains(Ivan)*
@priest774 Жыл бұрын
Так точно не лучше
@Das.Kleine.Krokodil Жыл бұрын
@@priest774 точно лучше, потому что имена переменных и методов не похожи друг на друга как братья близнецы
@priest774 Жыл бұрын
@@Das.Kleine.Krokodil это да, только читабельность кода и читабельность текста это не одно и то же. Ваш пример это каша. Сущность contact содержит набор данных: имя, телефон, адрес и т.д. соответственно contacts это коллекция сущностей contact, поэтому contacts.contains(contact) читается понятно и логично. А phones.contacts(Ivan) читается как телефоны содержат Ивана, какая связь вообще непонятно
@gordanov3 жыл бұрын
11:08 можно shortcut
@arhitutorials3 жыл бұрын
Alt + Shift + клик на нужное место в коде. Делал отдельное видео по этой фиче: kzbin.info/www/bejne/b5iZhINmf6mti5Y
@EdwardNorthwind Жыл бұрын
Я вот только одного понять не могу, какого хрена в Set нет метода get()?!?! Ну положил я в Set данные, и что мне дальше с ним делать? Любоваться? Как вообще можно было так ступить и не дать возможности забирать элементы из коллекции. А нововведенный Record? Молодцы, сделали Immuteble класс, но кто вас просил закрывать его от рефлексии? Что мешало добавить final и только тогда делать Record immuteble? А вот без неё - это простой POJO класс. И вместо повсеместного использования - их удел DTO, а народ продолжает использовать Lombok. А как бы шикарно record`ы смотрелись бы... да везде. Просирать полимеры это прям талант.
@mykola.artemov Жыл бұрын
что за корзины?
@arhitutorials Жыл бұрын
Это речь про устройство хэш-таблицы. В ней элементы раскладываются по нескольким контейнерам в зависимости от значение хэш-кода.
@Дмитрий-ъ2к8у2 жыл бұрын
Да черт с иквелсом, ты лучше скажи как ты сразу несколько строк отформатировал)))
@svetlanavydrina4143 жыл бұрын
"Икьюалс" 🤦♀️🤦♀️
@arhitutorials3 жыл бұрын
А Вы бы как сказали? Икуалс, иквалс?))
@svetlanavydrina4143 жыл бұрын
@@arhitutorials транскрипция ['iːkwəlz], то есть да, "иквалз" норм было бы
@kergshi9847 Жыл бұрын
пи*дец,вообще ничего не понял,откуда что берется(
@СинявськийБогдан Жыл бұрын
я один абсолютно не розумію логіки 2 останніх строчок коду в оверайді іквелс? Типу якщо ім'я не нал то ім'я не дорівнює самому собі, а якщо ім'я налл то воно не нал? Шо за херня , з хешкодом все ясно
@RumEvo Жыл бұрын
if(если результат любого метода вернет true) то выполнится код после, а после прописано return false то есть, если внутри if мы по equals получили true, то возвращать false будет не правильно, поэтому приводим true к false таким образом (!true = false) сам долго голову бил...