Техническое интервью Java Developer - Максим Стеблевский

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

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

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

    00:00:05 - 00:01:05

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

    00:00:35 - 00:01:38

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

    00:01:06 - 00:02:30

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

    00:01:49 - 00:03:08

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

    00:02:31 - 00:03:59

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

    00:03:17 - 00:04:29

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

    00:03:53 - 00:05:27

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

    00:04:44 - 00:06:12

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

    00:05:31 - 00:06:38

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

    00:06:04 - 00:07:41

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

    00:06:57 - 00:08:34

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

    00:07:58 - 00:09:30

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

    00:08:54 - 00:10:21

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

    00:09:38 - 00:11:06

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

    00:10:22 - 00:12:09

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

    00:11:20 - 00:12:48

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

    00:12:03 - 00:13:22

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

    00:12:47 - 00:14:19

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

    00:13:41 - 00:15:40

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

    00:14:41 - 00:16:21

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

    00:15:30 - 00:17:25

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

    00:16:30 - 00:18:10

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

    00:17:23 - 00:18:43

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

    00:18:05 - 00:19:46

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

    00:19:05 - 00:20:15

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

    00:19:43 - 00:20:57

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

    00:20:18 - 00:22:01

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

    00:21:19 - 00:22:52

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

    00:22:10 - 00:23:42

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

    00:22:57 - 00:24:45

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

    00:23:55 - 00:25:24

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

    00:24:45 - 00:26:15

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

    00:25:31 - 00:27:18

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

    00:26:26 - 00:27:47

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

    00:27:10 - 00:29:01

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

    00:28:13 - 00:29:52

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

    00:29:13 - 00:30:34

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

    00:29:56 - 00:31:16

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

    00:30:40 - 00:32:09

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

    00:31:29 - 00:32:41

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

    00:32:05 - 00:33:17

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

    00:32:41 - 00:34:22

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

    00:33:42 - 00:35:36

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

    00:34:43 - 00:36:25

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

    00:35:38 - 00:37:24

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

    00:36:45 - 00:38:15

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

    00:37:40 - 00:39:02

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

    00:38:21 - 00:39:33

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

    00:38:57 - 00:40:33

  • так ну я не помню я знаю есть [музыка] тоже очередь priority вот про так я ну смотри давай тогда пойдем с другой точки зрения расскажи про вклю что за дорогой интерфейс и методов там моря на самом деле но что за интерфейсе в чем его спереди и коллекция которой отец принципу вот их элемента и скажем так если мы первым положили этот элемент он первый возьмется с очередь ok ok откуда в очереди мы можем получать доступ к элементов с учетом принципа offers in our staff я не понял немножко вопрос хорошо смотри

    00:39:49 - 00:41:55

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

    00:41:03 - 00:42:36

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

    00:41:54 - 00:43:30

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

    00:42:45 - 00:44:22

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

    00:43:33 - 00:45:04

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

    00:44:37 - 00:46:07

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

    00:45:21 - 00:47:12

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

    00:46:29 - 00:48:00

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

    00:47:16 - 00:48:54

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

    00:48:07 - 00:49:35

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

    00:49:01 - 00:50:32

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

    00:49:53 - 00:51:00

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

    00:50:26 - 00:52:14

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

    00:51:39 - 00:52:54

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

    00:52:16 - 00:53:56

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

    00:53:26 - 00:54:50

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

    00:54:15 - 00:55:54

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

    00:55:12 - 00:56:43

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

    00:56:00 - 00:57:30

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

    00:56:51 - 00:58:30

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

    00:57:58 - 00:59:12

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

    00:58:39 - 01:00:19

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

    00:59:46 - 01:01:19

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

    01:00:51 - 01:02:27

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

    01:01:42 - 01:03:29

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

    01:02:43 - 01:04:30

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

    01:03:55 - 01:05:33

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

    01:04:49 - 01:06:22

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

    01:05:43 - 01:07:38

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

    01:06:48 - 01:08:21

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

    01:07:42 - 01:09:42

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

    01:08:41 - 01:10:35

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

    01:09:43 - 01:11:07

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

    01:10:25 - 01:12:02

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

    01:11:26 - 01:13:07

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

    01:12:22 - 01:14:02

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

    01:13:17 - 01:14:42

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

    01:14:01 - 01:15:39

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

    01:15:04 - 01:16:34

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

    01:16:06 - 01:17:43

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

    01:16:56 - 01:18:34

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

    01:17:58 - 01:19:58

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

    01:19:02 - 01:20:45

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

    01:19:57 - 01:21:34

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

    01:21:00 - 01:22:34

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

    01:21:52 - 01:23:18

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

    01:22:37 - 01:24:04

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

    01:23:32 - 01:25:08

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

    01:24:50 - 01:25:56

  • сформирован sql запрос он будет не болит что для обычного стоит на это уже проблем потому что там это можно реально хорошо ну как играл это субъективное мнение здесь шо давай тогда посту позже бибиси последний вопрос здесь разберем скажи как можно установить соединение с базы данных первых сделать класс фрейма и драйвер на запихнуть хотя бы драйвер после этого получается типа connection manager менеджер соединение которое мы можем вызвать метод get connection и передать туда your password и логин

    01:25:23 - 01:27:18

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

    01:26:39 - 01:28:08

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

    01:27:32 - 01:28:46

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

    01:28:12 - 01:29:34

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

    01:29:01 - 01:30:26

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

    01:29:49 - 01:30:58

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

    01:30:24 - 01:32:11

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

    01:31:17 - 01:32:53

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

    01:32:08 - 01:33:27

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

    01:32:48 - 01:34:27

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

    01:33:37 - 01:35:30

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

    01:34:48 - 01:36:35

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

    01:35:56 - 01:37:38

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

    01:37:20 - 01:39:10

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

    01:38:20 - 01:39:46

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

    01:39:06 - 01:40:54

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

    01:40:02 - 01:41:59

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

    01:41:20 - 01:43:07

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

    01:42:18 - 01:43:48

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

    01:43:06 - 01:44:25

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

    01:43:56 - 01:45:29

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

    01:44:53 - 01:46:18

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

    01:45:57 - 01:47:31

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

    01:46:47 - 01:48:31

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

    01:47:52 - 01:49:17

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

    01:48:43 - 01:49:56

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

    01:49:20 - 01:51:01

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

    01:50:10 - 01:52:00

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

    01:51:14 - 01:52:23

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

    01:51:47 - 01:52:59

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

    01:52:24 - 01:53:23

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

    01:52:53 - 01:53:52

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

    01:53:22 - 01:54:02

Менторы

Специалисты своей области, которые смогут помочь вам

  • Нигма Нурия
    Нигма Нурия

    Middle .Net Developer

  • Сущенко Татьяна
    Сущенко Татьяна

    Senior Product Manager

  • Гудков Денис
    Гудков Денис

    Middle Python Developer

  • Курочкин Константин
    Курочкин Константин

    Ведущий программист

  • Гудман Макс
    Гудман Макс

    Backend Software Engineer (PHP)

  • Гребенкин Антон
    Гребенкин Антон

    Senior .NET/C# developer

  • Ахназаров Фёдор
    Ахназаров Фёдор

    Middle DevOps Engineer | Tbilisi, Georgia

  • Шорохов Дмитрий
    Шорохов Дмитрий

    Middle C# .NET

  • Жуков Александр
    Жуков Александр

    Senior PHP-разработчик

  • Мазикин Павел
    Мазикин Павел

    Middle python developer

© 2024 HireGuru. Сделано в Санкт-Петербурге с hireguru.ru