Mock-Собеседование на позицию Java Junior Developer. Часть 2

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

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

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

    00:00:00 - 00:02:08

  • А какой именно использовал Мне кажется я бы использовал А если вторая табличка у нас она не сильно заполняет табличка зарплатой она заполнена и но нам при этом нужно вывести Ну какой-нибудь значение Да условно говоря даже для тех людей у которых зарплаты не указана в этой табличке чтобы ты использовал допустим у Пети Петя есть табличках работников но у него нет зарплаты в табличке зарплат Я бы использовал то есть буду брать всю таблицу с и также участка где они пересекаются то есть Окей хорошо Так это касаемо джойнов я понял Смотри

    00:01:23 - 00:03:06

  • есть у нас условия также допустим в SQL соответственно есть Хейвен в чем их разница где Какой используется какие условные операторы говорят Да используется Где Когда хевин Давайте [музыка] [музыка] в Scale используется для основном для уточнения некой информации то есть VR ID равен 253 А having в основу используется после после вр то есть VR затем крупа и затем хабинг ахаббинг для уточнения именно группирование что ли а если не в школе точно если точно у меня Прям такого не могу именно точно сказать но

    00:02:28 - 00:04:43

  • [музыка] используется для для также уточнения но сгруппировкой то есть с теми данными которые уже сгруппированы Окей давай сейчас как раз по этой поводу Я как раз подготовил подготовил готовил я кое-что сейчас я открою это на экране у себя и постараемся посмотрим как пойдет Я надеюсь что я себе сохранился Да я это даже себе сохранил И сейчас я наверное продемонстрирую экран Если получится видишь картинку так сейчас пока не вижу А да увидел Вот задачка нужно вывести те имена людей которые встречаются не менее двух раз по

    00:03:46 - 00:05:28

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

    00:04:41 - 00:06:25

  • не плейлист [музыка] здесь Наверное пойдёт Мы же должны Мы же должны сгруппировать рейтинг то есть мы должны показать именно имя и сколько раз она Например я согласен [музыка] [музыка] Что такое так принципе у меня готова но Давайте попробуем Давай Селект Rome Place затем у меня идет группа [музыка] согласен с тобой одна маленькая одна маленькая замечание есть ты вывел только количество то есть ты сделал Все правильно количество [музыка] это задачку мне задавали как-то собеседование где сейчас работаю и

    00:05:54 - 00:08:01

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

    00:07:40 - 00:09:10

  • таблицы когда она называется также eplay именно мы индексируем колонку ID зачем это нужно чтобы допустим у нас есть в базе 2000 [музыка] таблиц и огромное количество и миллион миллион строк информации Да когда мы если таблица не индексирована если мы пишем слегка Феликс база данных будет искать в каждой области памяти сперва Она должна найти эту таблицу и затем того сотрудника у которого имя Феликс А если Эта таблица уже индексирована она будет поиск будет как бинарном дереве То есть то что есть два элемента есть Root и два

    00:08:43 - 00:10:35

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

    00:09:51 - 00:11:41

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

    00:10:55 - 00:12:33

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

    00:11:50 - 00:13:28

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

    00:12:41 - 00:14:30

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

    00:13:50 - 00:15:19

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

    00:14:35 - 00:15:58

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

    00:15:18 - 00:17:18

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

    00:16:57 - 00:18:39

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

    00:18:03 - 00:19:25

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

    00:19:06 - 00:20:44

  • но в каком случае [музыка] не могу сказать каком случае я буду использовать Хорошо я говорю не переживайте Да просто просто подумай посмотри после чего я тебе напишу еще тоже приведу пример Окей так вот есть такие аннотации компании с репозитарий забыл контроль в чем их разница в общем в целом там и вот еще давай пока отдельно от нации пин потом еще пробит Расскажи Если углубиться между допустим я вижу типа истории аннотации по истории и компонент в основном между ними нет никакой разницы если есть

    00:20:17 - 00:22:10

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

    00:21:18 - 00:23:06

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

    00:22:19 - 00:24:19

  • сверху пишем просто аннотация Бин и можем за автовайрить куда туда куда нам нужно Окей смотри а Конкретно Могу ли я написать вообще в любом месте вместо ко мне то есть место компании я беру пишу Бин могу так сделать или мне нужно каком-то определенном классе писать где именно как типа его использовать Я понял А где Вот его использовать где его использовать вообще чисто теоретически можно использовать как место и компонента но но мне кажется есть все равно то есть некие нужные случаи когда мы должны

    00:23:36 - 00:24:57

  • использовать Бин но я не знаю Слушай вот тут Ты тут не очень прав Нам тоже посмотри вот с компонентом сервисом репозиториям и что-то я забываю и контроллером все все окей так проект спросил давай так Какие есть способы и и что и все наверное Посмотрим сейчас так Я просто спинку Какие способы конфигурирования Spring приложения то есть где можно назвать конфигурацию конфигурации мы можем создавать в самом моем классе то есть аннотации configuration есть также некая аннотация называется configuration аннотацию

    00:24:20 - 00:26:15

  • я Я скорее о том типа да Окей я понял Я скорее о том что вот где мы можем типа создавать пины и так далее там один пример этого ты можешь как раз с помощью аннотации с помощью аннотации Какой еще способ Какой еще способ Ага так есть А понял Если ты имеешь ввиду про xml то можно также через xml Да создавать Бин затем [музыка] можно просто через Java код Это вроде уже старый метод но вроде Также можно [музыка] самые старые Ну да еще есть 4 но мало кто его называет слышал слышал Нет не слышал но есть также встречный вопрос

    00:25:34 - 00:27:32

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

    00:26:37 - 00:28:28

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

    00:27:49 - 00:29:41

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

    00:28:49 - 00:30:23

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

    00:29:41 - 00:31:18

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

    00:30:37 - 00:32:05

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

    00:31:24 - 00:32:30