Техническое интервью Java Developer - Юрий Мусиенко

Подготовка к собеседованию на Java Developer

Транскрипция видео:

  • [музыка] резку друзья у нас вами очередное интервью на версию java junior developer и у нас гостях с нами юрий мусенька привет юра расскажи нам как ты пришел java как ты попал на интервью и почему же все-таки джавой какой тебя на всем привет меня зовут юра я из минска мне 23 года и жаловали начал изучать можно сказать чуть больше года назад но опыт а именно самой но снова использования то сумме там я думаю примерно месяцев семь восемь да то есть но началась даже это не жал она примерно месяц я ходил на курсы таки 8 занятий

    00:00:00 - 00:01:21

  • это было по бетонным мы не трогали даже метр то есть не просто там допустим елочка по культур звезды и звездочек там вывести из цифры от одного до пяти какой-то треугольник потом ростом сделать новых каких-то задачки максимально чтобы особый синтаксис какими станут типы данных мы прощались на питоне это проще всего потому что джори чтобы создать переменную нужно и там вывести штатной гранте нужно сделать вам не знаю кучу строк то есть нужно создать мой метр создать класс а там как бы все в одну

    00:00:41 - 00:01:42

  • строчку написал ну и выводилось то есть это примерно месяца по замело и потом как-то у меня был период такой то есть как сказать осмотреть все сферы и киевстар данных пересмотрел испанцы первой проблеме на контентонтент разделение да какие языки такой примерно как бы синтаксис что за что отвечает где ну то есть какая допустим java там для бизнеса какого-то крупного там еще что то то есть смотреть какие языки за что отвечает и ну как бы я понял для меня то есть именно это тоже вот так вот в голове зацепилась то есть в одной этом

    00:01:12 - 00:02:19

  • статья написана еще в другой штат именно java для начинающего был у быка быть хорошим языком есть там ты и осмотра он строго типизированный язык то есть этом не сможешь не понять условных под тяжело да и сам хорошо написано то есть там все строго типизированный и ты смотришь вот у тебя есть компилятор не позволяет многие вещи демонского и такая красота кода есть то есть переменной пишешь и youtube все указываешь явно грубо говоря и все видно и читаемость кода есть и поэтому для новичка мне показалось мне он подойдет

    00:01:45 - 00:02:52

  • плюс как были на не годишься большой бизнес и мне как бы интересно в этом направлении смотреть то есть не какими-то там заниматься мелкими вещами там вы тоже тоже круто комплимент помещаем заниматься ну то что он участвует именно в бизнесе этой что его он популярен спустя столько лет его существование он до сих пор популярен и развивается дальше захотелось изучать дальше java я там ходила на подготовительные курсы тоже там три месяца мы не зачали там не базы данных не фреймворке тоже все что связано

    00:02:18 - 00:03:21

  • journey именно там классы метод интерфейса там допустим было одно за одно занятие там стримы немножко то есть в каждую тему про слезы занятия дают понять это за тачки поверхность но так вот покор условно ну и сейчас вот я научусь на курсах уже голове у нас уже ну я заканчиваю курса примерно через полтора-два месяца с коренными 2 нам переноса занятие какие-то еще может будут и мы уже где-то примерно месяц пишем нас премье новое приложение то сейчас на спринт комиссии приняли на пару лет назад начался ад это был спинка

    00:02:50 - 00:04:00

  • еще примерно полтора месяца до у нас еще будет hibernate какие-то еще вещи дополнительно там блогер какой-то там еще что то докер какие-то вещи уже ну и до этого как бы тоже был блог в этом курсе core полностью мы в совокупности все курсы это примерно 8 7 месяцев это так я считал то что были месяцев которых просто я не занималась мы словно не кайтингом какие-то может видео смотрел я ходила на курсы английского там три месяца то есть и у меня ещё основная работа и поэтому как бы я ни сопоставлял эти вещи я

    00:03:24 - 00:04:34

  • сделал строго что английски немного потяну потом за месяц два раза курсов я читал книгу и horseman и может знаешь такую джордан то есть первую часть а как бы прочитал там немного еще удастся подсматривал и все и уже с этими знаем пошел огурцы и все то есть примерно 8 ощущается очень приличный опыт на самом деле там насчет перечислил и действительно я не могу не согласиться с тем что на питоне делать все проще однако питон строго не типизированный игра у нас защищает это наверное то почему бетон не является таким себе

    00:04:03 - 00:05:15

  • противодействием джавада сравнении с ним же к пленным кем-то другим языком и да действительно выбрав java это очень популярный язык он используется в большом бизнесе так званый энтерпрайз не резкому не падает с годами и ощущение что на наш век этого точно хватит поэтому это определенно ты на правильном пути и это классно что у тебя уже есть опыт на ты определенным нацелен на какие-то вещи стринги миссию это то наверное без чего ни один java разработчик сегодня это классно что ты уже с этим начинаешь работу ну да какие то вещи мы

    00:04:40 - 00:05:44

  • там пощупали то есть не скажу что это вообще отвечу на все вопросы я такой дрон журавский ну дорога в тысячу шаг верным тайных сперва шагах ничего страшного это это только первые шаги я буквально помню как я начинал с прямым висит оживут тыкала что-то еще происходило осознание пришло гораздо позже много если ты с этим работаешь если ты это используешь определенным обрастает экспертизой это реально lan ну чтож готов ли ты начать интервью ноготок трав . окей мышцы пробежимся как обычно по java кора затронем немножко

    00:05:12 - 00:06:26

  • spring и потом у нас будет техническое задание валют на разные если у тебя есть какие-то уточняющие вопросы спрашивай это нормально итак поехали в нашей рубрике а.п. расскажи что такое вообще зачем она нужна и какие задачи она решает ну опыт может и не знаю кто то слушатели не знает это не только как бы связаны шары да есть многие вещи которые не связаны как бы даже с языками программирования это такой подход к программировать можно так сказать который java на котором для этого не создавалось чтобы этот подход

    00:05:49 - 00:07:02

  • реализован то есть это подход состоит а масло идею о том что когда писался бизнесу снова раньше до того как я это понимаю раньше допустим когда programmer на было функциональный то есть не было довольно можно было то есть лишь на ли какие-то сложные технические дам вычислительной задачи прочее прочее то есть не было столько программирования бизнесе но когда это начало разрастаться таких масштабов что ну все это пошло бизнес 5 появилась как бы потребность в том чтобы описывать объекты именно то есть как они есть в реальном мире до си

    00:06:25 - 00:07:32

  • си то есть люди там есть эти работники зарплата там заказ это тоже победа сущность у них есть набор из своих каких-то свойства пакет человеком этом руки-ноги танк он за то есть сколько их количество дому и прочие-прочие вещи есть методы которые могу дела и могу говорить на могу бегать какая-то играть футбол и прочее дальше дальше заказ там тоже может иметь какую то заказ может состоять из полей каких-то dominatrix может еще что то там один какой-то заказа обязательно там магазин там в котором за независимость уважают того

    00:06:59 - 00:08:10

  • что мы пишем 0 и вот так вот мы смотрим на все вещи то есть ну круто на самом деле классно описал я пускал будет целая философия потому что действительно это философия на приходит и значит жизни и комментируется в код здорово а расскажи на каких стал похож чёрнолист кого особенного что явно его выделяет ну что выделяет а то юность наследование как всегда полиморфизм и что нас получается абстракция инкапсуляция ну про каждом если пробежаться то но абстракция когда меньше всего честно выделяется то есть

    00:07:35 - 00:08:56

  • ну я имею в книгах той все почти нигде не встречал действие есть api-интерфейсы как бы инкапсуляция полиморфизм и наследовать описывает больше всего слова не какой-то конкретный вопрос ответить или про все они абсолютно пропускала абстракцию никто не выделяют потому что благодаря всем столпам абстракция появляется если мы не будем соблюдать хотя бы один пай абстракция не будет поэтому отыскал бы этой погиб сила ну давай стоим с на каком-то конкретном поговорим это здорово что знаешь все ну и слышал как минимум скажи про

    00:08:15 - 00:09:30

  • полиморфизм чем его идея зачем он нужен и почему он так ваш есть еще полиморфизм член бизнес следования тоже не бывает и есть как бы два вида таких полиморфизма месте по не настоящие дают хорхе змеи нас истинный redhawk этоти вопросы обычные люди как бы когда google и до полиморфизм и встречаю там даже нас такой на курсы было там кто-то спросит про диморфизм сразу отличается полиморфизм это переопределение методов перегрузками то есть как бы но это и вот весь этот ход это типами настоящая сущность вернусь полиморфизма

    00:08:53 - 00:10:07

  • заключается в том что мы создаем допустим какой-то абстрактный класс да мы его передаем как параметры метода минут через интерфейс и мы можем поставлять уже конкретную реализацию то есть под это то есть мы не привязываемся там какой-то то есть как это объяснить у нас есть интерфейс который реализует в интерфейс и есть получается методы которые должны инкрементироваться есть классе которая реализует эти классы результат метод по-разному и если мы будем в параметры метода подставлять какой-то конкретный класс там и

    00:09:30 - 00:10:33

  • получается привязываемся своим методом что мы будем где только дальше вот допустим это будет вызывать он должен будет передать именно экземпляр этого класса а если мы куда подставили бороться строительный классов кого-нибудь наследоваться тоже они там будут презирать методы или ну или меняли имплементировать это интерфейса то получается мы можем доставить и 1 класс и другой глаз и она будет работать как бы за счет того что на интерфейс мы можем вызвать только те методы которые если этом интерфейсе

    00:10:02 - 00:10:58

  • ok а смотри вот такой пример предположим у нас есть несколько классов 1 класс эта машина второй класс это мой третий класс этот трамвай на тут есть таких 3 класса у них есть какой-то общий класс предположим какой-то свет средства передвижения каким образом мы можем на основании этого создать массив но так чтобы внутри массива оказались разные типы данных и при этом заработал полиморфизм что нам нужно для сделать вот с технической точки зрения просто буквально вот как псевдокод на пальце как связать массив из верхнего

    00:10:29 - 00:11:47

  • уровня объекты предположим а дальше что но вообще-то не сильно заработает но это хочет создать именно массив из объектов которые еще раз уточню у нас есть один какой-то класс или ещё что-нибудь такое это черный смочите в данных обобщенные называется средство передвижения есть и конкретных класса это поезд эта машина и этот рамбай все что угодно нам необходимо создать массив чтобы три экземпляра конкретных классов оказались в массиве при этом код заработал да и при этом еще полиморфизм заработал что

    00:11:07 - 00:12:28

  • нам нужно сделать для этого чтобы вот настал или произошло еще и знаю то кометы что допустим можно создать список в котором будет при моторизированным типом приниматься все класса которые наследуются от этого общего класса это ноги окей а вот хорошо а как добиться именно с массивом ну нет массив можно можно использовать предположим лист коллекцию не проблема пусть будет лезть из легче с листом что нам нужно с технической точки зрения завершить чтобы это произошло потому что вероятно если у меня есть 4 каких-то классов ну допустим

    00:11:49 - 00:13:05

  • средство передвижения 1 машина трамвай это уже 3 и поезд 4 я могу сказать что с вероятностью будет ошибка компиляции если я напишу лист оставлю в его параметр там средство передвижения потом попытаюсь в это средство передвижения подставить вот эти три конкретные классы автомобиль трамвай и поезд что вот сделать чтобы все-таки ошибке компиляции не было что тут не хватает нужно поставить этот вопрос не может быть нам где то что то нужно написать предварительно чтобы это заработало нам нужно где то это как-то

    00:12:26 - 00:13:51

  • описать нам мы проверить из нас может ну моники проекты мы просто создаем в одну строчку буквально ну лан для задаются сейчас на что ты и так я думаю ты знаешь ответ на этот вопрос от фильма что за нами нам я уверен что знаешь смотри еще раз вот мы когда создаем класс и что мы делаем мы описываем их сигнатуру может быть нам и класса что-то нужно добавить чтобы полиморфизм заработал в сигнатуре классу получается стоило and конкретно нужно немножко хоть ты меньше то что на можно просто наследуется от этого класса или добавить

    00:13:08 - 00:14:25

  • именно параметре жена тип не у них здесь не идет про порно просто что наследоваться я думаю что они уже наследуем не говорю что как бы создать на основании того паска что они уже наследования nokia а если я думал что ну допустим а если интерфейс раза имплементировать вам нужно x-trap гермес ты знаешь там когда и фишка с имплементировать и им в том что можно нескольких интерфейсов за и комментировать ok на самом деле ну как я стал ты знаешь ли вопрос все просто чтобы у нас появилась иерархия нам не нужно создать сначала мы

    00:13:47 - 00:14:56

  • создам базовый класс как искал обобщенный ну предположим называем вот так и далее мы должны либо имплементировать его если это интерфейс если это классно следует другими конкретными классами тогда мы спокойно можем написать массив транспортное средство или или из транспортного зря поставить его конкретный рельсов да реально хорошо круто идем дальше расскажу про типы данных какие джами из основные категории типы данных и почему они так различаются получается нас есть срочные типы данных и примитивной

    00:14:22 - 00:15:27

  • примитивные там если нас целочисленные с плавающей запятой это у нас флот дабл да есть целое число это шорты байт и бланк a4 получается у нас еще есть чар это семейный тип он хранит то есть у него запишем там несколько символов . это именно конкретно он хранит набор байт для одного символа и получается как бы трое ли фаллос они видят среднего либо или вот и соответственно тебе не соответствует ну и получается свыше типа doran и они хранят в себе то есть если у нас импэкс там допустим равно единице то вот

    00:14:54 - 00:16:06

  • этот x он хранит в себе уже значение а есть у нас допустим string то он хранит не как бы ну да возьму даже не string возьмем мы создали какой-то объект заказа он хранит в себе не значение то как он может не в себе значение у него значение то ссылка на который ссылается на участок памяти который называется куча да и там же этот объект и бы храниться а скажи можно ли представить вот искал что примитивы это там числа с плавающей запятой либо просто и на и предположим а можно ли представить это число в виде

    00:15:30 - 00:16:54

  • объекта и масло у нас есть класс обертки на интеджер зачем потому что нас списке допустим списке работают у нас не работать на примитивных типа да и и те же типы чтобы как-то усовершенствовать их работы то есть у нас примитивные типы данных они связаны только мы не можем вызвать на них никакие методы то есть они между собой могу складывается там и прочее прочее делают занятость они так можно выразиться живут меньше памяти как бы они не простые сразу на месте как бы они в одном участке памяти хранятся и все обертками можно разные

    00:16:11 - 00:17:30

  • вещи делать их можно снизить добавлять можно поставлять массив это применить массив винтов это примитивный тепла на ключ от это ссылочных данных он пишется с нижнем регистре а почему он срочно тебя на маша почему ссылочным фигуру то вот как ты понимаешь почему он целостный и почему он все-таки непримирим ведь он хранит примитивные числа а почему все-таки называется ссылочным может быть потому что мы можем делать какие-то операции то есть мы можем его добавить элементный высшим узнать его длину там

    00:16:54 - 00:18:03

  • не прочие-прочие вещи а как можем узнать длину баланс функции функция или что то другое метод на сантиметр не нем нет ни метров не метод и же как мы можем знать всю длину поезд является свойства свойства минут и просила об инс это свойство понижать а почему не метод но потому что это свойство потому что объекты а потому что объекты обладают свойствами и методами но это свойство мы что ничего не знаем . мы без колпачка пишем точно . ну этот нюанс я не знала как бы на самом деле тут и а скажи нечестно чтоб один

    00:17:29 - 00:18:48

  • ключевой признак вот когда мы программируем да вот как понять что массив это ссылочный тип данных даже если он хранит примитив так можно понять что есть такого в джаве особенная под поскольку ключевое слово которое явно то что нам может быть это скорее им возможность его состояния но вот есть такое одно ключевое слово которое явно говорит о том что иди hipp ну да иди там в кучу здесь этих пучишь и значит хрипит при созда когда мы создаем массив вероятно что-то мы должны написать что явно скажет нам что это

    00:18:09 - 00:19:31

  • будет объект направлен в кучу 300 мм и получаются такие открываем к ловите квадратные скобочки при создании и а мы доверяем . блин на ключевое слово new нас выделяет участок памяти абсолют хожу вокруг да около к ничего страшно нормально вампирами моя моя задача вывести из вокруг да около дома попала туда хорошо вот и круто отметил что у примитивных типов данных у них фиксированная величина скажи вот какая величина предположим у байка причем это выражено я конкретно цифра не назову но любой то получается величина его размер

    00:18:49 - 00:20:19

  • какой размер у нас получается самые маленькие получается байда куба это учатся 2-м ты стараешься стоит 4 ну можно можно и степеней ну да а сколько а сколько реально борьбу занимается в память как думать 4 битами перебито не дожить и несет ее путаю сколько он будет памяти люблю 2 в 4 бита нет ну можно было проще ответить на самом деле он будет занимать 1 байт в байт такие мелочи короче ты меня ничего страшного это порой да я просто настолько технически у него нет у них вряд ли тебе koramic придется задуматься о том

    00:19:34 - 00:21:06

  • сколько занимает байт ильин но всегда будет круто это знаешь хотя бы посмотреть допустим могу сказать что в oracle на сайте вора кого есть табличка специальная где можно посмотреть диапазона потому что диапазон и фиксированные и для байта это бар а помнишь какой какой диапазон значений он может себя включать то есть там от минус значение до плюс начиная от минус получается наверное от 4 4 на самом деле вот -128 да да вот здесь но не страшно не расстоянии 1 там одна значение 0 занимает ну хорошо давай поедем немножко

    00:20:20 - 00:21:50

  • дальше поговорим про класс обжиг расскажу вот какая задача классов java что он такого себя представляет а почему все-таки он есть общий тонус класс объектов которых следует нектара классе там который зону все классы как бы они не явно от него наследуют сюда если мы создадим свой глаз и будем пытаться зато него какие-то методы дата мы можем вызвать те которые есть скажи вот ты говоришь что нам обжиг является прародителем для всех классов java нужно ли нам это делать явно но мы уже разобрались что когда мы наследуем класс

    00:21:05 - 00:22:28

  • мы пишем extends или там это не нужно делать по умолчанию да расскажи какие есть методы вот своей точки зрения не прошу перечислить вот какие ты знаешь самые популярные методы в объекте которые хочется применять и которые мы применяем повсеместно ну самый популярный to the strings шкаф да то есть мы их сюда и определяем для наших нож потом есть get close который возвращает просто наших классах название возвращать насколько я помню не string не в не принципиально поэтому в общем она описание нашего

    00:21:46 - 00:23:09

  • класса полностью пакет которым лежит ли это get close и потом у нас получается есть многопоточный методы наверное ну есть такое которых и сбывают война лайс финала снова помеченную танцы для пикета ну дела не мог просто что он есть есть есть не в не принципиально это от того что ты уже перечислил уже достаточно и в отметку в get close возвращает экземпляр класса класс на такой экземпляр класса классному я писала а вот в этом экземпляре мы уже имеем то уме то информацию которая peace of mind и это имя и так далее ok

    00:22:27 - 00:23:52

  • давай поговорим про хэш-код вот играешь хэш-код мы переопределяем зачем мы переопределяем хэш-код и принципе как его приподнять ну хэш-код или ctos допустим нам нужно вместе приобщать потому что другу но это правило такой у нас это правило для сравнения потому что вот хэш-код он основан на числах то есть на возвращается int и вычисляется какой-то уникальный ключ объектами т.е. если они как бы объекты имеют разные хэш-кода то есть у in the там диапазон вроде 4 миллиарда помню 4 миллиарда или настолько как бы население большие две

    00:23:14 - 00:24:26

  • цифры и всякие куча объектов можно создавать и прочее и поэтому хэш-коды у двух объектов они могут разных могут быть одинаковые могут быть разные если они разные таблетки точно разные если они одинаково это еще не ясно и поэтому мы идем метод ее кроссы и уже дальше смотрим по нему окей а скажи вот что нам нужно сделать для того чтобы переопределить хэшкод предположим у нас предположим у нас есть класс пусть будет ситы запись гражданин него есть поле айди поле возраст и поле email нам все равно каких типов данных и

    00:23:50 - 00:25:01

  • какие значения просто вот есть три поля что нам нужно сделать чтобы сгенерируется этот повторить полностью сигнатуру метода ту которая есть в классе учат и туда какую-то логику прописать и который будет вычислять на основании вот этих полей о которой есть этом классе ну или мы можем сами прописать как хотим то есть вообще напиши на основании этих полей которые там есть она каким-то образом там есть разные логика считает доводилось когда-нибудь переопределять хэш-код низу конечно да ну как я это делал в еде это

    00:24:25 - 00:25:44

  • нажимаешь alt-enter ее нажимаешь переопределить выбираешь по каким поляк но все переопределяет но вручную прям вот прописки не прописан аоки ну ладно не дал тебе это делает это уже хорошо и на самом деле в этом плохого ничего не добренькая вот скажите вот у нас есть 3 поле как я отметил нам нужно при определении хэш-кода предположим все три поля или два достаточно правило что все поля ну то есть если мы хотим по какому-то конкретному более проверяться нам было нужно писать отдельный какой-то человек компаратор

    00:25:05 - 00:26:25

  • или метод 0 ну да говорить хорошо а вот скажи слышал ты что-то про контракт хэш-код что если хэш-коды одинаково это получается есть распадается на кого то это ещё не значит то что у нас объекты как бы одинаковы если хэш-кода разные то это точно значит что у нас как бы объекты разное если у нас получается и классы дают true то значит объекты всегда true и это значит что хэш-кода тоже руки а представим себе ситуацию вот у нас и курс дает falls может ли быть в этой ситуации что хэш-код будет все-таки

    00:25:44 - 00:26:59

  • одинаково да да может конечно может описать такую ситуацию при как а вот буквально скам техническую ситуации когда такого может произойти с твоей точки зрения что такое может произойти когда он у нас большое количество объектов мы у нас ну вот устройство хэш-таблицы да то есть у меня есть какие-то пакеты называются нее своими не говорю про хэш-таблицу предположим у нас есть да они нас могут быть одинаковой на пассаже рацию дорог просто ситуация от прямо на пальцах когда у нас два не эквивалентных объекта возвращают один

    00:26:24 - 00:27:35

  • хэш-код ну допустим этот хэш-код вычисляется только допустим по цене да и почитается одинаковый цикл сравнивается уже по всем полям могу быстро накинуть нужно а если вот так же на них одинаковое название разные ну представь предположим такой пример подскажу не что у нас есть два разных класса вот реально два разных класса но поля у них одинаковые и пульты между до значения полей и вообще поля полностью данных вот просто тип данных характера данных одинаковый и потом при создании этих двух разных двух разных

    00:26:59 - 00:28:13

  • экземпляров класса мы предположим по этим же полям установили одинаковые значения будет ли в этом случае одинаковый хэш-код думаю да должен быть а эквивалентность будет одинаково нет этих именно этих классов потому что когда века успели определяется там уж про весь класс у тебя всегда правильно молодец правильно то есть резюмируя абсолютно верно на у нас есть два разных класса у них одинаковы абсолютно поля или даже значение при создании экземпляров эти классов мы создали одинаковое значение ириды разумеется хэш-код генерирует нам

    00:27:37 - 00:28:52

  • по сути одно и то же однако эквивалентности здесь достигнуто не будет потому что от тип данных различается поэтому все правильно молодец ok двигаемся немножечко дальше мы поговорим про коллекция расскажи про иерархию коллекции что ты знаешь кстати g но у нас есть основной интерфейс это collection на и у него ну коллекция то вися простыми словами границы для ребенка песни то у нас есть даже люди коллекционеры а не какие-то там коллекционера всякие разные штуки где допустим не может быть какое-то

    00:28:15 - 00:29:20

  • количество одинаковых карт осенью все карты разные тут множество всегда множество кистами такое уникальное значение допустим летом коллекция конфликта крышечка не дам одинаково могут быть учетом они там последовательно у меня лежат меня такой формы объясняю что было понятно это у нас как бы просто список да мы можем положить назначению в порядке которым потом мы хотим как бы они нас просто по порядку лежат по индексам да но мы как бы хотим какой порядок некоторые копии задаем каком порядке мы их складываем

    00:28:48 - 00:29:45

  • есть список который основан на мазь или который основан в связанном списке и у нас есть еще очереди очень диета если тоже опять как для ребенка это тепло в больницу на сессию очередь очередь у нас и стопка тарелок но вот самый пример который встречается везде в интернете это устроен ты первым пришел первым обслужен и получается фёрст aldo понят не получается первым пришел последним обслужим 3 последний пришел первым обслужен last in first это допустим стопка тарелок да когда ты можешь первую сверху наложу взял куда ее малыш ее

    00:29:16 - 00:30:31

  • слушаешь или очередь больница да то есть ты первым пришел первым обслужен свою очередь вот этому есть еще мэтпэт на карта таким картам м на как там еще можно называется на разных языках по разному словарь или там в питоне я слышал ну и она не относится как big collection но это как бы тоже коллекции почему не потому что не исключен очень уникальный ключ банк я все вместе с друзьями что-то мы там общаемся всегда пример водоем что это от как банковские ячейки ты пришел банку часть ключик-то или чеки

    00:29:54 - 00:31:28

  • и сич этих там коучингом разных все может быть двери теркину разные ключи сюда обязательно уникальный и он как бы должен быть неизменяемым потому что ты если вот ключ потерял и потом очень материала как это не не достанешь у 6 значит а скажи слышал ли ты что-то процент ct там у нас получается множество до нем хранятся такое уникальное значение он не хранится и дубликаты и они ну и там есть на сорта c до описание сортируются по какому-то принципу если мы не рисовали получается если нас nick.com парабол интерфейсе не рисовали

    00:30:41 - 00:31:58

  • готовым не поймет как ему там сортироваться на хлопке я помню если у нас чистота он вроде бы и потому что они там внутри братика реализовывать смотри а ты вот затронула тему что сет можно хранить только уникальное значение правда ли правда с это множество страниц но не хранит в себе дубликаты а по принципу он не так же по принципу дала старику русской школы переопределены он обязательно а вот это уже другой вопрос другими словами если здесь правильно совсем ответить вам правильно работал до нужно передать еретиков и skoda объекта

    00:31:20 - 00:32:35

  • который мы хотим добавить на которого на основании которого хотим создать множество абсолютно верно уникальность обеспечена именно тем что два объекта должны вернуть икнул цру и только в этом сложнее аль ность будет соблюдена хорошо это здорово окей тогда двигаемся немножечко дальше расскажет и вот говорил что есть какие-то списке есть одна связанные списки и списке похоже на массивы судя по всему ты говорил про rain лист и ленте близ вот в чем их основная основное различие и как бы ты их охарактеризовал именно в

    00:31:58 - 00:33:16

  • джаве у нас есть реализация целей и есть у нас реализация ленте близ в чем их основные различия но основное различие в том что релиз это динамический массив да то есть у нас массив из обречены на всех винт и все то есть у нас он бы хранить ты ему сразу даешь размер если ты пытаешься добавить больше чем размер катера выскакивает ошибка ты не можешь это сделать а динамически расширяюсь массив а сразу от какой то есть он так и сделал что ты можешь него добавляют добавляет добавлять и добавлять удаляют удаляют

    00:32:36 - 00:33:43

  • добавлять и удалять ну и ты можешь ним работать динамически это слово динамическая а друзья то есть чем различие 8 ты по индексу очень быстро очень быстро доступа индекс аду связанный список и да хранит элемент получается в себе ссылки это в массиве хранятся элементы последовательно бы связаны списки элемент хранит получается ссылку на следующий или предыдущий который перед ним и есть различия то есть минут в средину в релиз добавить элементу нам нужно получается сместить все элементы и поменять семендер научатся индекса

    00:33:11 - 00:34:20

  • изменяться всех которая стоит справа да мы их смешаем выделяем место вот под наш вставляем их середину то есть нам нужно большой процесс провести блинки христиан и просто ссылку я им получается соседних и все вставляется и а скажи вот ты отметил что у леньки глиста у него ссылка идет и вперед и назад на то есть на предыдущий не стоящее а что находится у самого первого элемента какое значение краником предположим на предыдущий он что он может куда-то сослаться хвост скажем так или нет вот у нас есть лиги лист я понял

    00:33:45 - 00:35:09

  • я понял или меня вопрос да я простой с нуля жгуты что на 1 последний раз он хранит себе тоже ссылку на какой-то элемент но мне очень он его не так списке в отображении я не помню честно как это описывается но и я уверен что там есть значение он должен какое значение ну ну самого себя наверное было бы глупо типа ну ну может быть окей ну чаще всего 2 простой 2 связанный список он хранит в себе ничего на то есть если ничего самый первый элемент и у него по структуре есть ссылка на предыдущее на впереди стоящей

    00:34:26 - 00:35:53

  • понятное дело что у него впереди никого нет и если мы говорим с точки зрения джон это верят это на ну надо блогеры говорим о двух связаны еще двусторонний список до который может ссылаться грубо говоря хвост ссылается в голову а голова ссылается в хвост вот тогда бы он мог бы быть такой вариант но это уже абстрактной структурами как устроен сам линьки близ ok скажи мне вот если мне нужно предположим удалить значение последние в листовой коллекции просто последнее значение чтобы ты выбрал линьки для

    00:35:10 - 00:36:35

  • или релиз и все просто удалить как бы последнее значение я думаю ну и как бы не проводил тест но я думаю релиз просто по индексу получили доступ все же и все окей ну почему нет но мы уже имеем доступ к последнему массива нам получается нужно перебрать весь глинки 300 чтобы достучаться до последнего и его удалить ссылку а чем чревато удаления из массива чем чревато удаление сносил именно с конца или вообще ровных стен а предложен даже с конца тем что вас уменьшается размер на но чаще всего да если мы говорим про массив то нам массив

    00:35:51 - 00:37:26

  • мы же не можем просто удалить его из ячейки нам его нам нужно его убрать выбрать пришла можно перезаписать пола если просто носитель на может профессор перезаписать волновую массив или не туда я клоню не ну почему ну тут вопрос связи массива и листовых коллекций на то есть у нас есть массив под капотом как ты отметил мы знаем что массив это фиксированная величина если нам что-то нужно удалить из массива предположим в конце и больше все у нас ничего нет вероятно нам нужно сам массив еще урезать ну да ну там жил в этом в

    00:36:40 - 00:37:54

  • рельс те там же уже выделяется какое-то количество длина этого массива и я не думаю что там перезаписывается если вы там сразу в конце года он оптимизирован на то есть ну как бы если брать на массивах доп различие в том что нужно переписать весь массив да то есть положить его в массив меньше длины венки плести но не хорошо скажи а как оперироваться по коллекциям вот есть у тебя варианты как можно проигнорировать а по коллекциям и что здесь можно было бы сделать у нас есть еще такой интерфейс iterator

    00:37:17 - 00:38:37

  • который хранит в себе метод итератора который возвращает вроде бы оператор насколько и фонда или что-то такое ну в общем есть это реальность глубоко как бы его не как ну как бы что приобщать мы можем через оператор это сделать также этот оператор обёрнут в этот форум он работает вроде бы за счет интер оторвалось вот так мы можем 3 можем обычным циклом проектироваться форму просто можем оформить но как бы преимущество в том что курить он почему он основан императоре то что утрата есть метод там снег 100nx который проверяет

    00:37:56 - 00:39:14

  • если следующее значение и у нас for which как выходит строго по количеству элементов которые есть в списке и он не выходит за грань его а если мы обычным циклом пробежимся то есть шанс что мы неправильно укажем как бы наши ходы не получишь еще разница между обычным циклами for и честно скажу то что фуры чем мы не можем как удалить значение потому что нас water оторви хранится длина как бы носила им по нему ходит если мы были какие-то изменения делать наша списка удаляются ведь его значением является обычным форм поломается что

    00:38:36 - 00:40:05

  • поломается что произойдет ошибка что это ошибка знаешь это ошибка значит то что мы пытаемся изменить не неизменяемы наверное как то да и таро таро вас при должен быть изменяем ok ну хорошо хорошо а скажи чтобы все-таки вернемся оператором данным горит опрос про перечисления что нам нужно сделать чтобы можно было пользоваться вот этим циклом for each он ещё называется улучшенный цикл for english ну на английском enhancer for что нам нужно сделать для того чтобы наши объекты предположим могли подвергаться этой

    00:39:17 - 00:40:48

  • операции через цикл foreach введены для всех он далеко не для всех for each легли все ну да мы не можем foreach применять лучшими for each для всех номер должен когда мы пишем for открываем скобочки внутри создаем переменную типа переменную а потом да папа а потом ставим предложим ссылку на массив или ссылку на листовую коллекцию вот такого должно быть важного соблюдена чтобы это заработало потому что если я создам свой объект и подставлю его туда то вероятно будет ошибка если он не будет ли сигнал будет

    00:40:06 - 00:41:24

  • не обязательно нет нал не важно не важно какое назначение хожу вот предположим у меня есть тот же самый объект синтезом я его подставил в этот for и у меня тоже нет он не подставиться уже не относится к коллекцию citizen его нужно по спискам хоть ну массив тоже не относится к коллекциям однако массив может и тренироваться в цикле for each получается он должен интерфейс очень близко очень близко но не итератор вспомни еще есть очень близки по названию и парабол правильно а итератор это вроде бы не интерфейс император

    00:40:45 - 00:42:08

  • этапе днк и traper интерфейс и и terrible и оператор этой магистратов а помнишь ли где мы можем найти вот этот самый интерфейсы terrible ну и где его можно найти где он ветки типа наследование от него вроде бы идет имплементацию же collection абсолютно верно это то почему так коллекции могут интегрироваться в улучшенным цикле for под поскольку в нем так и написано в и термин что он позволяет объектом подвергаться найти и тратили да через цикл улучшенный for иначе это невозможно то есть технический мы можем

    00:41:31 - 00:42:53

  • создать свою собственную коллекцию или предложим свой собственный класс реализовать его от и terrible и это будет работать с ними таким образом сможем быть участниками ой хорошо хорошо давай тогда передвигаться . дальше расскажи про исключение какая там иерархия классов в случае но пока так а дальше перейдем более уточняющий вопрос ну получается исключение у нас телефона эксепшен самом верху у них получается класс у нас получается exception-ы error это у нас исключительно ситуацию допустим сгорел стиле block out of

    00:42:11 - 00:43:41

  • memory standard памяти не хватило что то еще то есть это мы не должны даже их обработку ну как бы по правильному их обработать круга не делаем потому что предугадать тоже как бы такой себе где мы можем предугадать что из розетки фонда буква газ и есть у нас получается эксепшен который делится еще на ранда mxr или мы просто exception to set a ticket и кончики танчики от это получается непроверяемые checked это проверяем и исключения разница между ними в том что если у нас получается проверяемо исключение да то мы должны их либо

    00:43:01 - 00:44:17

  • накинуть наверх тому кто будет дальше наш код использовать чтобы он увидеть вода он должен он обязан иметь что это ошибка она выскочит здесь и мы либо прокидываем на ветках ошибка либо на месте уже и обрабатывать то есть там кому покинули наверх это в методе делать сами страус мы можем несколько туда exception of кинуть наверх они туда метод вызывается и он должен обработать это исключение и бы еще дальше его опрокинуть непроверенные исключения то есть это у нас допустим вводятся вот даже сканеры

    00:43:39 - 00:44:41

  • стопы класс сканер на и бы все его используют вначале если ввести число допустим им до какой-то скансен это уже как бы относится к таким ошибкам которое ну мы не можем как бы предугадать что пользователь там будет водить там буквы вместо цифр и поэтому как бы там такое типа ошибка она походу как бы движение она может выскочить перильца или допустим массив да то есть если у нас бы было строго что мы должны обрабатывать исключение что если мы там неправильного индексу обратились дату у нас получается

    00:44:10 - 00:45:17

  • в каждый раз когда мы создаем массив нам нужно еще ну как соли добавляем элемент или на какой-то метод повеситься exception ноге то ли какой то там на обращение когда мы пишем условно мы должны обрабатывать такси а так получается что он выскочит только тогда когда мы сами хорошо давай становимся но вот разницы между чек тым чек вот искал что чегт мы должны всегда проверять а что все-таки значит мы всегда должны проверять в чем в чем заключается сама идея и технические какието реализации технически о том что

    00:44:44 - 00:46:11

  • есть блок треки на три проекта меньше есть блок трой кетч который мы обрабатываем exception есть рок strokes это мы кидаем наверх но тогда тут наверху должен тоже любят айтеч либо сделать роуз астане что это означает а тот наверху и так тот допустим класс который вызывает кто-то пишет класс и пользуются методом допустим я пишу какой-то класс там под базу данных или под списке у меня свои методы раунд он пишет какой-то сервис который уходит в базу данных да и он вызывает метод который есть у меня

    00:45:27 - 00:46:29

  • которая идет он берет эти значения которые нужны и он вызывает этот метод и визит что ему нужно с ним сделать либо обработать exception либо он пойдет внутрь и посмотрим что там может предположим вот мы вызываем какой-то метод какого-то класса и там написано всегда ариф роуз можете проигнорировать этот прос если этот человек не пригорит мы можем вернуться наверх не можем у меня ситуация такая вот я вызываем нету в этом методе уже написано фрол с какое-то исключение какое пока что не важен ростом написано я вызываю

    00:45:58 - 00:47:18

  • этот метод на своей стороне в своем методе другом разумеется может быть даже в другом классе не принципиально вот здесь мне обработать вот этот фрау как принимающей стороне мне это обязательно делать или все-таки не бизнес ну муштра кетч сделать трос не конечно ну а если они хочу делать тройки и если не хочет тратишь немножко компиляцию получив многие а а всегда ли это так но если этот человек это тогда всегда а если нет если нет нет если нет то только тогда когда возникнет эта ситуация которая также может выскочить

    00:46:39 - 00:47:55

  • odio может привести пример на тех исключениях которые мы знаем джаве предположим вот у меня есть метод неважно как он называется у него написан of rose что что мне надо вов роуз написать какое исключение но если ты помнишь как а исключение написать чтобы на вызывающей стороне мне его обязательно надо было обработать и как а исключение надо написать для второго варианта чтобы я мог бы это проигнорировать нам нужно в этот роуза кинулся к септим который будет наследоваться от получаются нашего exception это если мы хотим точно

    00:47:16 - 00:48:32

  • обработать если later on doing внутри классно может назвать какие-то примеры вот допустим на pointer exception самое популярное то есть мы пытаемся на ли вызвать какой-то метод молдова объекта сделать какие-то примеры таких раздражающих исключений чек раздражающих чек ну вот это которые меня бесят меня даже как я не знаю но ну не то чтобы она резко это бывает сам виноват когда там какое-то консольная да там какой-то тоже калькулятор на том что писали давно даже была именно в консоли втянута есть там

    00:47:54 - 00:49:22

  • какие то есть менюшки доведите число вот эта введите число а потом виде богу это же на автомате пытаясь что-то проверять пишите что число а потом случайно букву а надо было число ну и выскакивает ошибка соответствующие наверно там от и между про чеки а я между а чек да ну в науку это допустим да ну он уже говорит кабину сносит это сделать есть еще out of медленно они 3 мая риттера и спешит мелко финал panther ты уже сказал что это runtime exception значит это анчик не спишь ты не волнуйся и но знаешь ли

    00:48:41 - 00:50:03

  • какую как какой-то 123 которая относится к чек то есть по любому который нужно обработать через три печь или перебросить еще выше через кроме весь район xx-ом миссис клей licks общем я таки знаю насколько я вот применял да ну вполне себе нормальный пример да этот исключение которые нас бесят почему небесному что каждый раскачиваться на обрабатывать их обрабатывать вероятно даже нам это не нужно хорошо хорошо двигаемся туда еще немножечко дальше мы поговорим про строки сроки все-таки это очень важная

    00:49:21 - 00:50:28

  • тема в любом языке программирования java не исключение расскажи как строка под капотом устроен что же все это такое строка это у нас получается неизменяемый тип данных сразу можно отметить это string у нас обычно поэтому нас есть strings and offers team builder то есть они разные пистолет функции string у нас получается но он писал собой строку на бои на барбара слова мы туда записываем и прочих текст и в чем его фишка фишка в том что у нас допустим есть пару строк такой устроен еще то есть каждый раз при

    00:49:55 - 00:51:13

  • создании какой-то строки у нас допустим у нас есть string допустим какой-то мы сами создали дать им и мы к нему добавляем еще какие-то значение до 1000 кислоты привет там не знаю еще что то ховард не у нас создается внутри еще одна строка еще одна строка нанесли дается пока мы плюс и делаем там еще внизу сделали у нас постоянно создается как бы то есть они изменяют тип данных а как все-таки вот строка вот под капотом выглядит этот это какой-то набор слов или цифр или не знаю и набор символов набор байтов да ну

    00:50:33 - 00:51:54

  • вроде бы набор байтов набор бокалов уверен массив массив массив но против получается массив бантиков на самом деле далее мы можем сказать что это по сути массив символов действует по-другому о значках привести строку к массиву символ там есть метод чара the chart черной ноги ну да такая вот прям наизусть честно как не страшно не страшно но по крайне ли ты помню что где-то там есть какой-то метод это не так уж и плохо я полевом мы там это можно сделать дыхание окей а вот подскажи ты говорил что вот происходит тут

    00:51:15 - 00:52:47

  • какой-то вот объект неизменяемые происходит там соединения объектов то есть это какая-то имут обильность как это чаще всего говорят о чем одна имут обильность обеспечено в нашем случае с технической точки зрения вот почему почему класс string является имеют обл потому что создается новый экземпляр класса это но в том числе ну создается новый экземпляр класса больше что еще а можем ли мы наследоваться от класса string и предположим на но класс файл да а что это значит что мы не может быть верно следовать мой расширять его не

    00:52:01 - 00:53:36

  • можем у тебя по чем а почему так происходит с чем это связано связанность что вот мы как раз и хотел обеспечить вот эту и мутабельных сегодня хорошо росла то есть мы не можем создать новую архиве каких-то строго но и совершенные в окей а вот с технической точки зрения для самой java я не говорю не про программирование а именно для джиббинга virtual machine отыскал есть какой-то там или еще что на испанском оммаж расскажу что это такое и как оно работает ну строки это случается одной из самых часто используемых вещей

    00:52:48 - 00:54:03

  • и поэтому если у нас но я но и занимаю тоже память и много можно делать памяти если у нас одинаковые стоки встречаются то они как бы записываются то есть ссылка будет идти одно и тоже учатся то есть одно и то же значение как бы чтобы не повторять не дублировать то что текст может быть большой может быть две книги дан целые полным текстом одинаково эстонка бы хранить и один объект одинаковые второй вид как бы там много будет очень символов если им там ведь и прочие вещи они там четыре милля да да

    00:53:26 - 00:54:29

  • хранят то строки могут и больше хранить и что произойдет если у нас предположим как ты уже привозил на самом примере вот у нас есть выражение string а равно скобочки до внутри там кавычки allow потом знак + и еще world что будет у нас внутри получается выделить участок памяти под новый страх опыт работ hello world а будет ip-адрес пока или две строки ну технически это у нас уже будет одна строка ну вообще внутри такой две строки но у нас сейчас будет конкретно объект который мы получили есть вот strenx'а

    00:53:58 - 00:55:17

  • равна плюс to scan картине руется получать эти строки да у нас будет наша строка уже соединены are happy сколько будет strokes of hero и 2 ну потому что мне ну неизменяемые там вот этот метод плюс этот круг от он делается так что с новый объект а скажи вот еще вот опять же вот про string пол протока java работает и у нас способ все-таки создать ты говоришь она ему табельное да вот мы pink вот написали мы холода слова хэллоу она там string у лексика сохранилась если раз я как отметил еще раз вас

    00:54:39 - 00:56:02

  • требую это слово как то берём книгу большую то ссылка приведет нас к уже существующему если возможность все-таки создать два экземпляра хеллоу ворлд и реально двух местах happy но я так понимаю мы тогда воспользоваться вот этим string баффер через просто оператор new на и да то есть мы создаем news тэнг туда кладем значение и мы делаем еще один string то есть аппарат ранее у нас получается выделяет сразу часто без него мы можем этим голову пользоваться абсолютно верно другими словами new это явное

    00:55:21 - 00:56:47

  • выделение нового участка в обход стрим пула когда мы просто пишем войны и кавычки джавад жильем она уже понимает что где нужно искать откуда это нужно брать ok звучит обещающе давай поговорим немножко про конкатенацию если способ вот обойти конкатенацию вот так чтобы вот они опять же выражение color plus world of плюс ! то есть мы друзья определились что в этом варианте будет три объекта happy частности extreme пули можем ли мы создать эту строчечку одновременно ведь наша задача создать ее сейчас да вы прямо и целиком конечном

    00:56:04 - 00:57:31

  • итоге у нас вот халлоу world ! как не создателю так чтобы конкатенация не создавала happy tree разнообразных объектов используются нашими классами да им builder и стоит баффер мажем одним из них не дам есть метод append добавляет к существующему же строке добавляет нам то что мы тогда пропишем как бы а чем это достигается изменяемость умер на класс вот это то есть то что он 8 мнения мы не говорим про класс мы говорим про строку вот ты отметил что есть stringbuilder или стрельба херни принципиально какой из ним вот почему

    00:56:47 - 00:58:09

  • конкатенации обычно кавычки плюс кавычки плюс кавычки плюс порождает много объектов в string пули тем самым мы получаем такое перформанс проблем с памятью во вторых stringbuilder или string баффер этого лишён почему в нем так это все работает из какой ключевой признак или что лежит в основе того почему не создается лишних строк в хеппи мы пошла того отсутствует ключевое слово на нее где-то а потом то есть не выделяется на участок памяти попал и строку но ведь когда мы пишем конкатенацию скобочки слова плюс

    00:57:28 - 00:58:51

  • скобочки слова плюс скобочки слова все равно выделяется память уже в string пули то есть она выделяется неявно но она выглядит это я сначала у нас хэллоу мы заняли места в stream поле а потом хеллоу ворлд да мы заняли места в stream пули потом хеллоу ворлд ! новая строка заняла место в string пули вот почему string stringbuilder предположим можно на нем остановиться этого лишь он ведь мы по сути делаем builder оп оп оп ну и так далее использовать может подскажешь сейчас на самом деле потому что к этому всему

    00:58:10 - 00:59:28

  • относятся как вы опять же кабанчиком это в обход не не происходит выпуск самой строки в хит и в частности в string пол сначала формируется конечную строка как массив бантиков да просто боевики buy скелетики собирается мы и на потом создается и только потом она разумеется единое целое сохраняются в наши string пол таким образом мы увеличиваем производительность экономим память потому что если мы сделаем миллион эти наций буквой а мы получим очень большой 1 от памяти и по производительности в том

    00:58:56 - 01:00:10

  • числе просто если мы сделаем то же самое при помощи stringbuilder а это будет очень быстро и эффективно и в итоге мы строчечку создадим итоге ну да продвинемся немножечко дальше вот ты заговорил про stringbuilder вот мы перейдем к теме который называется дизайн это очень популярная штука вы программируем не только в джаве какие ты знаешь паттерны проектирования в принципе в мире и какие ты можешь назвать примеры которые реализованы в джазе уже реализованы паттерны ну ты между соль от подката мнения solid это

    00:59:34 - 01:00:59

  • принципы объектно-ориентированного дизайн я говорю про шаблоны проектирования и начали называется английском design patterns это какие-то типовые задачи которые решаются определенным способом и мыслим что допустим я знаю наверно синглтон из такой паттерн вот это мы можем сделать приватный конструктор и ты бы выдавать еще не стал с объекта статический кто-то был там мы создаем его из одиноко мы возвращаем и финального классно приватно конструкторы а какие ты знаешь еще 0 помимо синглтона синглтон домики распространенный они

    01:00:17 - 01:01:41

  • призваны от многие могут сказать ноги а вот какие знаешь еще во знаешь ли ты может быть джаве какие-то которые вот уже реализованы именно самими разработчиками java еще раз нашла про факторов даже можем опустить на самом надо план как я ним случае опять этот есть ну что-нибудь бранить милтон или борьба это просто самые распространенные которые всегда используется на хотелось бы знать что-нибудь еще нет наверно так не скажу что сможет то есть у накинешь который хотел бы услышать я можете узнать о

    01:00:58 - 01:02:12

  • мужских сейчас но тебя stringbuilder ни на какую мысль не на не натягивает не почему stringbuilder это типичная реле к примеру весь вопрос был о том какие в драме с реализованы stringbuilder это типичный пример реализации паттерны проектирования или шаблоны проектирования совсем правильно строитель он же билда это его представление о кей ну раз ты знаешь слышал про секторе знаешь про символ тон может рассказать в чем задача factory вот факты у нас было мы как бы делали клеит юзеру допросил да то есть вы

    01:01:35 - 01:03:07

  • давали его то есть мы вызывает а статический метод который делал я помню мы создавали то пусть создаешь юзера вызываешь этот метод получаешь и прочее уже определены как бы наши так сказать определены правила по которым мы будем создавать этого пользователя а всегда должен возвращаться один и тот же тип данных или могут быть разными типами разные каждый раз новый создается получается не но создает каждый раз новый объект ну наверно а вот какой тип данных у них у них мод может быть предположим мы

    01:02:21 - 01:03:47

  • знаем можем привезти на примере фигур можешь ли ты описать вот на фигурах на пальцах как бы выглядел твой шаблон секторе мы был бы общий интерфейс по которым было создавался ok но хорошо мы тогда это опустим этот вопрос и оставим секторе на техническое задание я думаю там у тебя будет больше возможностей с этим попрактиковаться вопрос несложные нехитрые но главное чтобы у тебя была возможность ноги тогда двигаемся дальше мы перед прямо плавно переходим к джаве 8 + скажи слышал что-то про функциональный интерфейс и в чем их

    01:03:05 - 01:04:25

  • задачей и для чего не нужны соседа на надо без них жили как селекции на 8 появились затем функциональный интерфейс это получается интерфейс который содержит себя только один метр так же вроде бы может содержать вроде дефолтный метр и он еще помечен получать можно пометить аннотации фарш интерфейс компилятор будет ругаться как бы если у нас будет famed как должен быть только один и получается для чего сделан он тесно связан с ним до брожения и сказал что java 8 это нам упрощает как бы задачу того что нам нужно было бы

    01:03:45 - 01:05:04

  • получается сделать интерфейс от него он исследоваться реализовать метод close обязательно должен был быть какой-то а лингам мы сразу как бы прописано месте то вроде бы больше к функциональному программировать скажи вот ты от меня-то как бы с заменой анонимным классом вроде пища для вот и отметил что для функционального интерфейса должен быть только один метод могут быть дефолтные а может быть все таки два метода а какими характеристиками до основными должен обладать метод функциональном интерфейсе чтобы этот функциональный

    01:04:24 - 01:05:38

  • интерфейс действительно был функционально у него должно содержаться только один метр а вот но это на но до 1 метод но это про интерфейс а вот этот метод как он правильно называется как он правильно называется он называется абстрактными один абстрактный метод ведь интерфейс и могут содержать только абстрактные методы ну да да конечно ну так у нас реализации там нет никакой а дефолтный он является абстрактные он является что у него есть какое-то какие то есть хорошо а как хорошо тогда пойдем дальше можешь назвать какие-то

    01:05:02 - 01:06:43

  • примеры функциональных интерфейса сдают у нас получается есть унарной операции бинарные операции то есть мы передаем там есть метод которые передаем и два объекта и возвращаем какой-то этим и с ними что-то делаем и возвращаем эти есть бинар это бинарный унарные то мы принимаем получается один объект возвращаем как бы тоже этого же типа объект ну и бинарным на как бы два одинаковых типа принимаем и возвращаем это вы же тип это же объект потом вас есть критика трон возвращают получается будем есть еще получается

    01:05:52 - 01:07:09

  • консьюмер концу мир это слово это потребители он типа принимает на ничего не производит он говорит принимаю этот но в этом тип назначения что то с ним делать приводит ничего не защищает получается еще и сопла этом есть называется еще ну принципе да а скажем о чём отличие вот со флаера от канзи мира а то что сопла р получается нас возвращает значение и tagged он не принимает значения и возвращает какое-то значение а что нам нужно сделать чтобы и принимать значения и возвращать значение ну то есть консьюмер только

    01:06:30 - 01:07:47

  • потребляет sapfire только отдает олесь какая-то возможность чтобы и принимать и отдавать ну вот этот унарный было у нас мы принимали и возвращали в этом доме ну а имя точная помнишь the moon армия перешла говорить за какие-то там функции еще что-нибудь есть функционал все подарю как он называется у него получается он принимает два значения принимает сначала одного типа и 2 до а возвращает а нет он принимает то есть над классом если есть дженерик получается с двумя типами он понимает 1 астрологов какому да верно верно ну то

    01:07:12 - 01:08:46

  • есть но народ хорошо здесь здесь хорошо давай тогда поговорим напоследок перед техническим знанием немножко про стрим ты уже отметил что ты им занимался и вероятно мне тебя это не должны составлять супер сложности но и вопросы не шибко-то и тяжелая вот spring весь такой из себя spring крутой набор фреймворков но конечно же лежит в основе java кордон spring core этот хочется сразу спросить что такое bim зачем он нужен в стринги и какую роль он играет бен это просто объект и так называли бен захотели блин блин вот

    01:07:59 - 01:09:15

  • у нас она есть это экземпляр нашего класса упакованы полностью объект который прошел комиссии цикл то что он прошел создался вот наш мир готов хорошо как можно создать пин баянист аннотации бен можно через концы главе ресурс xml файл можно в экселе тоже там создавать связывать ну в основном а чем я пользовался это пытаться бен в циркуляционном файле еще ориентации компонент можно пометить на никольскую а еще какие-то альтернативы знаешь вот как можно создать бен пилот отметил есть аннотация бен если

    01:08:38 - 01:09:52

  • аннотация компонент еще какие то варианты знаешь вариант это миша дуло критично контексте у достать из контейнера создать создать отправляем создать создать ну я только чем пользоваться это может быть слышал про другие китай аннотацию вот отмечался и между про другие не связаны с by ног или иное звено телефон аннотаций аннотация очень много и создание способов через аннотации в том числе бинов тоже немало никому там еще компонент скан нужно чтобы указать где сканировать как вы находите себе вот эта нотация знаю а что делать но

    01:09:15 - 01:10:46

  • хорошо вот если компонент к что делать components то он в нашем пакете висит получаются класса который поменьше нотации компанию только ли аннотация компаниям или могут можно еще какие-то другие сделать аннотациям расспрашивали он ставь его ноги но хорошо раз но я не скажу нескажу хорошо ты сказал что есть какой-то контекст что такое в стринги и какие виды контекста бывают как их можно создавать при помощи чего и зачем он вообще ну вот если брать скучать spring core у нас есть ну как я буду говорить о как я есть класс

    01:10:01 - 01:11:33

  • конфигурации и мы можем создать их контекста как тесто у нас получается занимается тем что хранит в себе информацию достать наш pink получить свой экземпляр и я получается создавал класс конфигурацию этот класс конфигурацию передавал table конечный контекст а сам пляж на карте капли конечно текст не передавал класс конфигурацию . пласт и получается там вот эти бин и все они между собой сконфигурировать в этот путь с ним контекст положились я могу доставать экземпляр класса теперь пользоваться нашими бинами они там начинают жизненный

    01:10:46 - 01:12:21

  • цикл проходит свой создаются каменные проще вот это вот вещи и все могу им пользоваться проинициализировать этому еще сделать готов к использованию и все запри конечно контекст я могу к нему обратиться это такая обертка и над контейнером для nokia а много ли контекстов может быть или только всегда один нет может быть еще концертным хочешь что-то еще один а как бы вы знать способы как создать контекста как создать контекст и можно вручную создать вкладку создать класс создать получаться предмет и в нем

    01:11:34 - 01:12:51

  • создать экземпляр класса конфиг конечно контекст из причин контекста при конечно котекс равно ним детей . контекст можно представим себе ситуацию вот есть бен на вот есть там и какие у него есть скупы на вот стринги очень часто упоминается слово скоу что это за слова какие из толпы в спреде вами область видимости или обыскал бы область нахождения или область отношений от школ до боли я не буду прям гадать и по несколько может быть ты слышал что-нибудь про татар а прототипа синглтон да это сами основные

    01:12:12 - 01:13:49

  • синглтон это уже говорили об этом то что все бины повторно автоматически они синглтон то есть мы получаем за кляр класса нам подается из методик даже можно поменять на тацитом , да и как идиот чтобы получать каждый раз новый объект накладную нашего бен а вот эти я слышал там еще какие то есть ну я как бы так не буду верхних не пугался и не буду даже гадать как по теории я прочитаю где-то нашего духа улетел другое вылетело если не использовал у я не использовал пока что хорошо а вот что подскажешь по

    01:13:02 - 01:14:19

  • поводу синглтона посмотрим вот одну интересную ситуацию синглтон всегда существует один если возможность создать 27 милтона в спарринге насколько я знаю что привыкла синглтон решил про конфеты всех о том как работает контекст вот ты говоришь контекстно вот штопка зачем вам нужен что по сути какая его задача получается как про искать инжектит тебе не до его задача и инжектить или на зависимости получаются metaframe я понятно я понимаю я понимаю что-то между но по сути он является чем вот стринги

    01:13:41 - 01:15:10

  • вот какой основной rolling отыгрывать утечку это spring контекст их очень много но что же вы зачем бен понятно ты уже описал что бен это представление какого-то экземпляра класса контент но у него задач просто просто быть экземпляром класса и все а вот кто у контекста какая задача объединить в кучу получается кабины какую-то общую часть они между собой должны как-то быть связаны в этом habeis распрямляю чтобы как-то создать бен и отдельные между собой их связать вот это приклеен к текст этим я дома и

    01:14:28 - 01:15:40

  • занимается ну и джэнерал да ну в общем да по сути это он является каким-то местом для хранения этих генов до к нему относящийся и вот всё таки возвращаясь к вопросу можем ли мы создать несколько символ тонов вот у нас есть один класс у него скальп синглтон можем ли мы создать 27 болтонов стринги то есть если мы сделаем два три конечно контекста тоской глаз не круто но почему бы нет белиберда мы про это и говорю да этот ответ нокий ну да на самом деле так и есть весь кто нам мешает создать несколько контекстов и в каждом

    01:15:04 - 01:16:13

  • контексте хранить по одному символ он у одного и того же класса это возможно хорошо хорошо давай тогда поговорим о последнем вопросе отметил что ты работаешь с небом и к речь идет про спринт mtc расскажи как можно создать сир блеф с премьер все лето мина создать спиралью вообще spiegel с при комиссионной же есть 17 лет и он уже занимается у нас получается там есть тоже жизненный цикл нашего screen когда все приложения и этим 20 раз как контроллеры то есть если вот у нас была когда ну просто сервлеты

    01:15:39 - 01:17:12

  • до обычной отжалась руля-то как бы если провести аналогию то примерно то же происходит в этих в контроллер то есть там тоже есть get past методы как бы какие-то мы видим какие-то странички и прописаны урал какой то то есть вот это мы можем создаем контроллер вот и все у нас есть вы были в крыша lider задам гривен creation а когда контроллер стринги модель должен dispatcher servlet мы как-то создали памяти нотации контроллер окей а что это аннотация контроллер делает по большому счету что она делает она дает наверно

    01:16:25 - 01:17:44

  • понять наши как что это класс будет контроллером а с точки зрения контекста что нам дает еще это ну то есть понятно дело контроллера она говорит наверняка dispatcher сервлета что вот такой-то вот объект вот он есть им пользуюсь а а вот с точки зрения spring контекста что она делает не скажу подумай хорошо вот она создает какой-то объект мы уже определились что как-то в стринги объекты создаются получается дает объекта контроллера ну да ну да а как экс-премьер процесс происходит ну получается этот

    01:17:04 - 01:18:31

  • applique наша при клешем контекст ненавидит это он это отцу и понимает что вот у нас есть контроллер или получается когда приходит запрос на над пользователь распределяют на него задачу или доллар поэтому им тыщу а с точки зрения стрингах как это будет называться я имею ввиду такой объект как он стринги будет называться такой объект не скажу но на самом деле это жизнь это бен это между что-то просто been on the controller это ничто иное как аннотация для создания by на вопрос в том что оно обладает никогда большими

    01:17:49 - 01:19:12

  • возможностями информации чем обручей понял этот не знал но вот теперь знаешь а скажи если еще какие-то другие возможности создать контроллер ну вот есть аннотация контроллер может быть еще какие-то способы есть еще какие-то способы не знаю может быть через xml как потом есть возможность но вряд ли я не мы не трогаем экзо locate метание запишем мы не столь конфигурацию это довольно фары по дну можем просто пустить можем работать от жара конфига и от аннотации может быть ты знаешь и какие-то способы как можно

    01:18:29 - 01:19:52

  • создавать может быть ты пробовал что-то или видел где-то вот не пробовал и не видел я вот только контроллеры мы показывали ну то есть класс коммутацию контроллер и там получается пол прописан путь горлу и прочих ящик может быть какие-то аннотации контроллер но с дополнительным словом каким пытаюсь тебя подвезти ко мне просто мысли и the rest контролем между 1 раз еще пока нет и до скорого утилиты но теперь я точно знаю что есть еще один способ аннотации вере не создание использования аннотации на для

    01:19:11 - 01:20:30

  • создания контроллера и the rest контроллер в общем почитаешь посмотришь как это выглядит после там тема довольно таки интересная но упрощает нам некоторые вещи хорошо вот мы и подошли к концу с теоретическими вопросами и планами переходим к нашему техническому заданию итак друзья мы пришли к техническому заданию в нашем техническом задании нам необходимо реализовать следующие обычный шейп factory да да тот самый паттерн проектирование от factory или фабрика о котором столько говорится и так мы будем

    01:19:52 - 01:20:55

  • реализовать метод get instance который должен возвращать нам конкретный экземпляр типа шейк сейчас у нас их есть два это копов и это треугольник однако в будущем нам необходимо предусмотреть нашу организацию и сделать вот таким образом что вероятно мы добавим новый тип данных скажем in the gun который будет реализовать интерфейс шеек настоящее время клуб & triangle реализованный полностью и там нам делать мужчина поэтому мы полностью фокусируемся на методе get instant и теперь мы перейдем пульт управления

    01:20:24 - 01:21:29

  • юрию [музыка] [музыка] [музыка] нас [музыка] [музыка] [музыка] [аплодисменты] [музыка] [музыка] [музыка] [музыка] у нас [музыка] [аплодисменты] [музыка] [музыка] [аплодисменты] [музыка] [аплодисменты] [музыка] [аплодисменты] [музыка] а [аплодисменты] [музыка] [музыка] [музыка] [музыка] что у нас за из получил знать посмотрим все вместе смотрим и и что у на с тобой получилось мы ловим null pointer exception по-прежнему глупо интер exception-ы эквивалентность она не состоялась хотя у тебя один россию получилось

    01:20:56 - 01:24:25

  • добиться и это круто но тогда при сравнивал конкретные экземпляры класса instance of через ин сон через метод через метод in this instance и конечно же тогда это работа у вас сейчас когда мы работаем с классами и эта штука не совсем у нас отрабатывать во первых что здесь можно было бы решить ведь у нас уже есть какой-то класс вероятно на нем дважды вызывает этот метод зачем ведь я полна наш класс а при по потому что мы передаем такой вот интересный тип данных и зачем важно это делать теперь мы попробуем выполнить в

    01:25:03 - 01:26:22

  • таком формате то есть допустим сейчас он загрузится и мы увидим вот я был разгром моя ошибка пытался в этой на классе но уже готовом классе ты пытался вызвать метод get close разве что он тогда вызывает если мы откроем его и почитаем да мы возвращаем абсолютно не то что мы ожидаем в этом варианте у нас получался нам поскольку ни одно из условий не отрабатывал с другими словами когда мы пишемся get close на бегу секретку вас она нам даже идея подсказывает что данный метод всегда нам возвращает фолз эквивалентную

    01:25:41 - 01:27:16

  • двух несовместимых типов мы видим что get close вернет нам picture и вот что он нам возвращает они класс кьюб которые мы затребуем в этом и заключается проблема которая была поэтому необходимо удалить get close и все заработает поскольку мы уже работаем с класса но тем не менее я отмечаю что первый раз задачу и решил правильно ты применил у класса метод из инстанции на передал ему объект но проблема что выглядело это в это не очень получается мы два раза создаем объект что проверить а потом возвращаем

    01:26:30 - 01:27:40

  • безусловно левого уха возможно нам этот объект не нужен представим себе что у нас простыня из десяти проверок разумеется проверка 10 выполняется а мы создадим уже в хеппи девять объектов которые нас не интересует разумеется instincts работал но он не совсем классный по производительности не то что хотелось бы видеть свой стороны и вот такой подход которому ты начал рыв тоже вполне себе работает но что мы можем сделать еще и еще какая альтернатива эквивалентность вполне себе окей мы можем попробовать

    01:27:06 - 01:28:08

  • здесь применить с вич или еще что-нибудь да что связь работает с константами значениями мы можем использовать как альтернативу второй момент мы можем создать здесь коллекцию предположим у нас есть какая-то мапо до которая хранит у нас ключики и по этим ключам с раны контент ский разумеется если мы это более сложный вариант давай остановимся на ifa что здесь сразу хочется улучшить нам никто не запрещает выполнить следующий нет да мы передаем сюда стринги класс мы точно знаем о строка никаким образом не является у нас нашего

    01:27:36 - 01:29:07

  • интерфейса шеи и это будет очень плохо да когда мы попытаемся что-то выполнить конечно же в этом формате мы наткнемся на что на null pointer эксепшен поскольку ни один из экземпляров не соответствует этому типу и вот мы наткнулись в одиннадцатой строчки на null pointer вполне себе закономерно почему потому что мы не предусмотрели это в коде у тебя есть варианты каким образом ограничит типизацию каким образом ограничить ну чтобы мы могли передавать туда только фигуры не было трудно generico можно ограничить хорошо знаешь

    01:28:21 - 01:29:37

  • как быстро вот за минуту решить этот вопрос и где можно возле класса и а я специально да да пожалуйста можно возле классу написать что то что имплементировать пишу им получается шейн не работать не так нельзя описать другое слово значит expand ok значит должно работать какие то да да смотрю лишь на уже ловим ошибку компиляции защитился это нормально то есть он говорит нет никак не extends а скажи удаляем это и здоров молодец а скажи как мы можем еще улучшить эту штуку вот сейчас у нас extends шеи да вот здесь мы можем здесь

    01:29:00 - 01:30:39

  • мы тоже видим шейку мы можем здесь тоже указать каким образом единый можем заменить его т и сделать можем все здесь получается то она перед ты указать что у нас что то что extend шей для как не не так и они не туда клоню мы вернуть в любом случае должны шеи или ты мы чтобы улучшить так чтобы не только шейку сказать что мы явно возвращаем мишей по какие-то его реализации его но ты уже написал класс ? wild card extend шеи вот ты в правильном направлении двигаешься и хотела кто пол и сделать дженерали zero вани этот тип

    01:29:52 - 01:31:37

  • точки зрения типизации на чтобы она была действительно безопасно которая гарантирует что какой тип данных ты туда передаешь такой тебе в точности будет возвращен потому что сейчас я вполне могу передать тип данных пью а вернуть triangle и это будет работать вот так наверное да так наверное получается но тут тоже надо ну зачем тоже написал ну я же написал только здесь получается у нас теперь нам как-то тут кастануть его немножко да допустим к станем окей вот и разобрались до более менее у нас получился код

    01:30:49 - 01:32:19

  • безопасно потому что мы теперь этому готовы ну что ж что нам это даст давайте посмотрим во первых мы наверняка можем здесь изменить уже на какой-нибудь юп юп сточной вероятностью здесь и также здесь мы можем поставить прям а можем ли мы поставить triangle на пью и мы видим что нет да потому что наш не тот но они же не относится да он говорит что ты предложил вернуть куб разумеется возвращать you any triangle в прошлое реализации самый первый ли вы самый сыра у нас была проблема с этим мы могли вполне передать тип данных юг

    01:31:36 - 01:32:53

  • присвоить его переменные который называется triangle то есть этот два несовместимых типа в нашем случае сейчас эта задача решена и мне кажется ты справился с ней довольно какие успешны с чем тебя и поздравляю на военные спасибо ну что же давай обсудим как ты себя чувствуешь после этого интервью что у тебя есть skype рассказать нашим зрителям может быть пожелать им что-то и как целом ты себя ощущаешь как ты оцениваешь свои знания после интервью ощущая все нормально ну конечно есть пробелы но я сам когда они

    01:32:15 - 01:33:25

  • их не знал в чём я проверка сосет дед классе прочего я с ними задачу не решал и если честно признаться перед интервью для мало времени уделял повторению чтобы но как бы не обманывать себя повторил два часа прочитал опасными который я стал ли все новые ничем не знаю ну что пожелаю знаний больше усилий прилагать поставить все конкретные цели как думаешь как скоро будет попадать на реальные интервью готов ли ты уже я думаю что готов то нужно еще конечно получить некоторый момент я надеюсь ты готов через неделю

    01:32:50 - 01:34:05

  • через venmo что уже 9 что-то запланируем ну есть варианты если я пройду практическое заранее там сегодня у должны проверить это какой-то интер первый возможный жгут живое может быть пришла топо жила бы зрителям но который тоже вот готовиться к интервью вот и здесь из учета твоего уже опыта на что следует обращать внимание своей точки зрения больше взять времени практике причем практике не такое что там повторить просто что тот что к не почитаешь тогда повторил переписала именно попробовать этот код как-то

    01:33:28 - 01:34:35

  • изменить так чтобы понять что ты реально понимаешь это происходит небольшой времени зрители на практике потому что читая какие-то статьи проще ты что-то знаешь новые но есть не применяя что как бы это все быстро забывается неделю-две проходит и ты уже не знаешь это очень классные слова детства и акте присоединяюсь и конечно это это наверно лучшее что можно пожелать в этом формате особенно для новичков ну что ребята у нас в гостях был юрий мусиенко он успешно прошел по интервью конечно же он получит свой отзыв

    01:34:01 - 01:35:05

  • официальной чуть-чуть попозже но это было реально круто классно и за что тебе огромный ресниц массируй тебе тоже спасибо на сегодня всё спасибо евро тебя за твое время и надеюсь мы с тобой встретимся уже где-то на реальном интервью в какой-то компании предположим где я за хочешь поучаствовать спасибо тебе и [музыка]

    01:34:34 - 01:35:17