Тестовое собеседование Java разработчика #14 - Владимир Дубенко

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

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

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

    00:00:00 - 00:01:38

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

    00:00:46 - 00:02:10

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

    00:01:29 - 00:03:22

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

    00:02:28 - 00:04:33

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

    00:03:33 - 00:05:15

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

    00:04:26 - 00:05:50

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

    00:05:24 - 00:06:59

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

    00:06:18 - 00:08:12

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

    00:07:18 - 00:08:57

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

    00:08:20 - 00:10:20

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

    00:09:25 - 00:10:49

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

    00:10:18 - 00:12:06

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

    00:11:13 - 00:13:20

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

    00:12:15 - 00:13:46

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

    00:13:04 - 00:14:33

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

    00:13:59 - 00:15:44

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

    00:15:03 - 00:16:43

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

    00:15:53 - 00:17:15

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

    00:16:43 - 00:19:02

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

    00:17:58 - 00:19:44

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

    00:18:52 - 00:20:36

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

    00:19:48 - 00:21:41

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

    00:20:43 - 00:22:10

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

    00:21:28 - 00:22:43

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

    00:22:09 - 00:24:24

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

    00:23:17 - 00:24:43

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

    00:24:15 - 00:26:24

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

    00:26:30 - 00:28:26

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

    00:27:31 - 00:29:26

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

    00:28:35 - 00:30:06

  • значения и отлично да и получается что конечно индекс просто уменьшить на роджера до бам бам бам бам отлично согласен по правам хорошо супер-воин дальше чему вещь будет rover зал теперь факты в а укажешь машинки что ты хочешь теперь рыбалку уменьшит на один символ не работал но открываем скобки и esab string нет indexof нет ли на можно так я хотел через хорошо в конце выходя из цикла если все хорошо мы должны по идее поидее сделать рекорд razor pro 900 оставь только одна услуга да можно добавить что

    00:29:34 - 00:31:33

  • я сильно худшим вариантом если у нас будет когда мы ничего не будь я пойду мы когда полностью мне вообще не халяль удаляли да отлично любому думай быстро зал enter говорили что у нас здесь будет вот так правильно так возвращаем да хорошо но я просто обработать наклонена и там начать мне говорили что если б с равен all do we can draw an illegal 7 чел айда на этом сообщении и если наш массив и стр length случае мы тогда начни рабочие какие вот группы команды есть языке я quake 4 глава первая работа

    00:30:45 - 00:33:01

  • данными помнит одна дата где финиш онлайн быть и еще 1 это select и join и и всякого рода такие другая то крытый был outer thigh bone и все что касается еще одна это уже прям конкретно с базами данных и 4 по моему что то с транзакциями связаны но я с ними не работал не на самом деле внутри ту правильность 1 до финиша львович 2 который городские т.к. привет структуру нашей таблице 2 эта дельта manipulation вич который отвечает за получение данных изменений удаление и дать он редко применяется это контроллер бич хорошо

    00:32:04 - 00:33:42

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

    00:32:55 - 00:34:39

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

    00:33:51 - 00:35:58

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

    00:35:02 - 00:36:24

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

    00:35:42 - 00:37:19

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

    00:36:31 - 00:38:23

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

    00:37:38 - 00:39:11

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

    00:38:24 - 00:39:51

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

    00:39:07 - 00:40:38

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

    00:39:53 - 00:41:50

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

    00:40:55 - 00:41:56