Тестовое собеседование Java разработчика #8 - Виталий Телиженко

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

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

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

    00:00:01 - 00:01:47

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

    00:00:54 - 00:02:58

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

    00:01:58 - 00:04:31

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

    00:03:20 - 00:04:51

  • например мы пишем большое приложение несколько класс юзер дописать узор и баланс comparable и работу до дальше или но сейчас уже большие реализуют compact то есть есть один еще компаратор и у него есть метод com порту до переопределяем метод комфорту мы можем указать в этом use ли каким полярном сравнивать даже in the industry что именно в этом классе юзер мы были переплет метод campari камбоджу правильно мы будем comparable именно интерфейсам classic а если где-то извне у нас будет какой-то отдельный кварц

    00:04:09 - 00:05:49

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

    00:04:59 - 00:07:01

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

    00:06:09 - 00:07:54

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

    00:07:09 - 00:08:58

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

    00:08:04 - 00:09:58

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

    00:08:59 - 00:11:22

  • обычного стрима pro extreme он делит на задачу на несколько различных потоков на поток исполняется не зависим друг от друга почему-то постоянно нигде не пишем порол стрим принципе удобнее до всегда распараллеливания все операции по 8 м и сразу так делаем потому что не пытается надо иногда когда ты размера called ты не требует разделение на несколько стримов устремляясь к разнице я всегда допустим всегда бы использовал быстрее данном четыре потока будет быстрее чем один потом аппаратом вместе виду что если на разных процессорах

    00:10:12 - 00:11:53

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

    00:11:09 - 00:13:09

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

    00:12:17 - 00:14:33

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

    00:13:33 - 00:15:19

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

    00:14:28 - 00:16:27

  • compare and set a market atomic перемен атомарный но это механизм доходит до lock free структуры лук фри алгоритмы когда мы говорим про обычный dakedo монитором этом блоке использовав то вилок и ждем а есть более такой быстродействие механизм который позволяет детстве по-другому подходить решение там задач на дослушать про частично покера не optimistic это не туда немного и т.д. то есть конверсионной стену своя мета или но из-за этого активисты пессимист это немножко не то же то есть мы когда compensate мы берем какую-то переменную

    00:15:30 - 00:17:02

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

    00:16:24 - 00:18:01

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

    00:17:14 - 00:19:23

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

    00:18:19 - 00:19:57

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

    00:19:09 - 00:20:57

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

    00:20:03 - 00:22:33

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

    00:21:52 - 00:23:52

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

    00:22:51 - 00:24:42

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

    00:23:52 - 00:25:36

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

    00:24:45 - 00:26:16

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

    00:25:35 - 00:27:18

  • берлинский случился виду так числе чисто кибернет без pringado у нас должен быть персистенции unit 3 файле чистом гипернет там работал и работал примерно постараюсь рассказать то есть файл persist с xml мы там указываем вроде как параметры именно включение он обычно называется hibernate . cng xml или фидерных properties потом есть у нас persistent юнит который отражает как сама все вроде как приложения нам нужно совершим factory согрею какой оставляет мне configuration фильтр хорошо да есть такая штука центре

    00:26:35 - 00:28:44

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

    00:27:45 - 00:30:01

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

    00:29:02 - 00:31:12

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

    00:30:12 - 00:32:10

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

    00:31:13 - 00:32:36

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

    00:31:56 - 00:33:45

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

    00:33:01 - 00:34:57

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

    00:34:05 - 00:35:39

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

    00:34:54 - 00:36:52

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

    00:36:02 - 00:37:58

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

    00:37:08 - 00:39:43

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

    00:38:37 - 00:40:39

  • джарван джон он по случаю он требует то же время и дает логичную структуру проекта хорошо хорошо все это есть такое цикл тобой работать или нет это критично поэтому этому прошлись по этому этом и есть хорошо а остаток one take it back какой аннотация inject inject.bin jac ты слышал она на уровне я видел когда на уровне гибер ней-то и мы работаем без pringles части java д-р вот собственно говоря используем inject factory хорошо итак в принципе потому что было потому потому что было навечно буквально по коллекцию

    00:39:39 - 00:42:10

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

    00:41:00 - 00:42:24

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

    00:41:46 - 00:44:18

  • дня хороших выходных еще впереди и до связи всем пока

    00:43:10 - 00:43:19