Тестовое собеседование Java разработчика #1 - Игорь Капустян

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

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

  • продам да хорошо так началась запись привет ещё раз просто себе так меня зовут игорь мне 28 лет как бы начал изучать зовут года полтора назад проходил какие-то мелкие курсы в основном сам занимался так что вот так хорошо что если увеличить кроме жалких для технологии приборке база данных ну да на самом деле только начал познакомиться со springmvc hibernate on gp и с базами данных с под прессом непосредственно сейчас работаем по чуть-чуть ну в общем стандартность так технологии стараюсь изучать может быть java java

    00:00:00 - 00:01:29

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

    00:00:48 - 00:02:45

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

    00:01:46 - 00:03:13

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

    00:02:31 - 00:03:46

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

    00:03:08 - 00:04:54

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

    00:04:01 - 00:05:38

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

    00:04:50 - 00:06:37

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

    00:05:42 - 00:07:02

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

    00:06:26 - 00:07:58

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

    00:07:16 - 00:08:52

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

    00:08:10 - 00:09:45

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

    00:08:58 - 00:10:29

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

    00:09:44 - 00:11:07

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

    00:10:25 - 00:12:21

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

    00:11:29 - 00:13:13

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

    00:12:26 - 00:13:49

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

    00:13:13 - 00:15:44

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

    00:14:26 - 00:16:02

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

    00:15:16 - 00:16:56

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

    00:16:06 - 00:17:53

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

    00:16:58 - 00:18:24

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

    00:17:42 - 00:19:54

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

    00:18:48 - 00:20:27

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

    00:19:59 - 00:21:53

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

    00:21:04 - 00:22:35

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

    00:21:56 - 00:24:20

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

    00:23:13 - 00:25:30

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

    00:24:29 - 00:26:20

  • с другой допуд дополнительные tab эти столбцы короче с другой таблички например надо смотрите пусть мне есть таблица касательства тоже остается есть таблица ardors который имеет обычный ключ на кастамере кастами ради той слайс на поле и кастеров хочу вручить для каждого все его заказы сделать помощью join как табличка кастами табличка заказ так про mary kay на заказ там если вы например legenda главное что тут заказы и приказ на мерсе зависит от этого если нам нужны каста мир цветов сначала пишем ссылок там lacoste мир

    00:25:24 - 00:27:08

  • след join и к нему же присоединяем заказы если на них заказа или нет но если если в приоритете для нас кастами со если а если и не joey sturgis так inner join date надо вспомнить чем по моему он присоединит и карта мира да и эти то есть возможность где-то 0 а вот если на audi 100 хорошая мысль не знал будет а то что это будет то это просто создадутся и каста мерсы и к ним присоединяться все возможные ардис и который она и не джоном нигде не будь то есть у меня муж где-то проскочить на утро да конечно

    00:26:20 - 00:27:58

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

    00:27:10 - 00:28:45

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

    00:27:59 - 00:30:14

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

    00:29:08 - 00:30:55

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

    00:30:09 - 00:32:06

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

    00:31:08 - 00:33:15

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

    00:32:11 - 00:34:01

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

    00:33:14 - 00:35:21

  • смотри есть у меня к the spring приложение экваторе стряпня пририсовал разбери не допустим цепочку что происходит вот моменты когда же мы допустим зеленую кнопочку запускаю приложение и до момента когда я допустим поставь дело первый запрос поэтапно без углубления классно просто происходит мы lady gaga вас usa таблицы users by the user сервисе за контроллер intel для юзера и я делаю , иди то есть вот я сенпай от который держит а то есть когда из браузера отправляет запрос что происходит на 3 от момента старта

    00:34:24 - 00:35:38

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

    00:35:02 - 00:36:53

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

    00:35:59 - 00:37:52

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

    00:36:55 - 00:38:24

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

    00:37:51 - 00:39:28

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

    00:38:40 - 00:40:39

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

    00:39:40 - 00:41:41

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

    00:40:41 - 00:42:33

  • не спрашивая стыдно мне все время все давай давай hitler [музыка]

    00:41:36 - 00:42:00