Тестовое собеседование Java разработчика #10 - Максим Матло

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

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

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

    00:00:04 - 00:01:51

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

    00:01:09 - 00:02:59

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

    00:02:04 - 00:03:21

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

    00:02:43 - 00:04:29

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

    00:03:44 - 00:06:15

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

    00:05:03 - 00:06:23

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

    00:05:43 - 00:07:32

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

    00:06:36 - 00:08:01

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

    00:07:28 - 00:09:17

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

    00:09:00 - 00:10:39

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

    00:10:04 - 00:12:25

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

    00:11:15 - 00:13:16

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

    00:12:20 - 00:13:59

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

    00:13:09 - 00:15:10

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

    00:14:13 - 00:16:03

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

    00:15:06 - 00:17:36

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

    00:16:24 - 00:17:57

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

    00:17:24 - 00:18:41

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

    00:18:03 - 00:19:40

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

    00:18:55 - 00:20:26

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

    00:19:48 - 00:21:29

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

    00:20:47 - 00:22:12

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

    00:21:34 - 00:22:49

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

    00:22:08 - 00:24:01

  • строке и попробовать именно только обычный к under этом и g и поехали [музыка] [музыка] [музыка] то есть им пока i меньше нуля recitation пол не начнется даже как о нас будут условия окончания цикла [музыка] ну вот так как-то пища не ошибаюсь вот такая штука . а links есть такой процесс это дар она лежит и здесь пока i меньше input прочитала и хорошо идем дальше потом получается ситуация что [музыка] как-то как мы не делать вложенный цикл да да да вот вложенный тут мы будем от он у вас будет как ты хочешь идти по внутреннему вам 13

    00:23:34 - 00:25:46

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

    00:25:57 - 00:27:43

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

    00:26:49 - 00:28:30

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

    00:27:43 - 00:29:22

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

    00:28:49 - 00:31:05

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

    00:30:13 - 00:32:32

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

    00:31:39 - 00:34:48

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

    00:33:53 - 00:35:36

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

    00:34:49 - 00:36:50

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

    00:35:49 - 00:38:00

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

    00:36:55 - 00:38:56

  • смотри вот методы смесь 12 spring-a что допустим делать срез трин but each он используется сплит бут ну вообще он используется для того чтобы облегчить разработку нас премье с помощью во-первых идет там идет стартер dependency потом там идет он очень хорошо авто конфигурирует это все are taking конфигурация соответственно идёт и плюс и плюс соответственно started in dense идут и для чего они вообще нужны эти не если чего мы их используем как и искал baby-nova это синглтон прототайп request сашин applications и websocket

    00:38:03 - 00:40:10

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

    00:39:08 - 00:41:56

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

    00:40:41 - 00:42:00

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

    00:41:22 - 00:43:15

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

    00:42:09 - 00:44:35

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

    00:43:57 - 00:45:47

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

    00:44:50 - 00:46:11

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

    00:45:35 - 00:47:02

  • всего сохраняет счастливым пока пока

    00:46:32 - 00:46:37