Подготовка к собеседованию на Java Developer
Менторы
Специалисты своей области, которые смогут помочь вам
Middle .Net Developer
Senior Product Manager
Middle Python Developer
Ведущий программист
Backend Software Engineer (PHP)
Senior .NET/C# developer
Middle DevOps Engineer | Tbilisi, Georgia
Middle C# .NET
Senior PHP-разработчик
Middle python developer
Каналы
Полезные Telegram каналы и чаты
Транскрипция видео:
наверное надо продолжить inspiring и тебя не я придумал другой вопрос быть выбрать после право джонов просто я сейчас скажу после право джонс можем продолжать лично после проводов мы поговорили про стратегии слияния различные и тимур отлично ответил на этот вопрос а потом мы говорили про индексы и про яндекс наверное поговорим еще раз чуть чуть но не то что говорили я придумал новый вопрос вот смотри если бы ты вот и опять же как если ты был девелоперы базы данных у тебя есть таблица как бы три сделал для нее яндекс не в
00:00:09 - 00:01:44
смысле karait индекса бла бла и скинуть а вот есть за задача сделать обрядов на диске какую-то структуру данных которое поможет искать по таблице чтобы ты делал руками какая должна быть структура не знаки алгоритм с какой стороны подойти к декабрю интересно я покупала сообразить давай давай причем для простоты ли не надо там всяких композитных индексов функциональных частичных прочей хрени давай есть колонка тихое и 32 для для простоты и вот мы хотим и в этой таблице 100 миллионов записей вот мы хотим
00:00:57 - 00:02:18
искать по этой целочисленной колонки для неё надо разработать yandex вот такая раз база индекс можно делать только на им 32 полива как такой индекс врачи в базе родить ну виде естественно какого-то дерева его надо хранить получается памяти то есть если в памяти ваши но я понял вопрос о том что на диске дай мне ты же велел первозданных ну понятно тяжело обратить но понятно что это виде какого-то дерева должное так дерево какого-то быть на ум приходит что-то типа не знают файловой системы или как в этот
00:01:44 - 00:03:30
день все сделанных ладьи вот давай проще не надо пилить свою базу давай у нас есть памяти китовый массив несортированный вот так получилось так получился он тоже там здоровенными знаю на 100 миллионов запись на остальных элементов и мы хотим реальном быстро получать ответ на вопрос есть в нем будем какая-то чисел k или нет но не сортирую его как вот для этого массива какую структуру дамы построить там где-то рядом не знаю на диске в памяти в уме чтобы быстро искать поэтому в силу бинарное дерево это хэш т.е. 11 бинарная
00:02:42 - 00:04:14
или хэш 3 или что наверное сотни разных деревьев враждебных пешмерга не совсем важным дерево ну наверное бинарное дерево почему нет но как чтобы найти быстрое число побежать на бинарное дерево как смысле вот и тот же массив перри перестроить у дерева ну наверное получится но я если снова вернуться к базе этого получится мы вот эту самую таблицу куда мы постоянно говорим там и и там уже 3 миллиона клиентов то есть мы ее тоже постоянно будем саму таблицу перекрашивать но мы будем не таблицу переполошить а например мы делаем запись
00:03:34 - 00:05:01
таблицу мы знаем но предположим что это и девичник записи это дай дичь ник там не знаю с каким то указателем на место на диске будем записывать наше дерево так скажем получается и денег у дерева мы будем находить где у нас находится указатель на вместо там на низко чем такое когда ну в принципе да какая сложность поиска по бинарным деревом а я не помнил о грн 4 получается ряда урока квадратичные пологом это лоб какой двоичный pornolab основания давайте получается оснований потому что дерево бинарное
00:04:20 - 00:06:00
но если дерево было бы тернарного то наверно построить по крайней слойка все нормально ну там конечно не не отличная горит и основанием по по любому основанию там потому что о какой-то функции может быть изменено на любую константу как бы говоря рифм по одному основанию приводится алгоритм под друг друг друга москва new с помощью умножением на константу поэтому там говорят о от лог чего-то то там нет оснований то есть по любому основанию на двоичных двоичной действительности что семеричной пожалуйста величин ладно хорошо отлично
00:05:14 - 00:06:54
давай теперь про java как я уже говорил код написать не будем строчку переночевать мы не будем углы и мой вопрос такой он больше про какие-то там основные концепции и и языка платформы и вот этого всего и джами есть два типа исключения проверяемый и не какое твое отношение к берем исключать моник полезный бесполезны это было был хороший ход 25 лет назад полная то есть нравиться или не нравиться как блин тяжело конечно так такого набита опыта нет но вообще мне конечно они не нравится потому что приходится
00:06:04 - 00:07:46
описать постоянно много кода там что типа если но компилятор начинает появляться новые не компиляторов начинают ругаться что ты тут не проверил возможно исключение там трали-вали но на таком каком то интуитивном стали уровне почему так как я понимаю том же springen там все сделано на on time эксепшен а ну многие вещи получаются незаметно так делали до по моему все в спарринге сделала даже немного помню вообще все ноты нужно давним активно понимаю что почему то там все они at runtime совершенно следует получается 2
00:06:55 - 00:08:20
стака то и дело смотрел ты завтра дизайнер belver сегодня дизайнер свою библиотеку для работы не за допустим со штатом рвали новая чтобы клиентка свой тимур клиенты ты бы использовал в дизайне этого пи чип так хочу или нет ну скорее всего нет конечно использовал а нам все исключение а вообще исключение использовал бы или не знаю как психики обошелся бы отдали возврат каких-то ошибок или успеха то есть принципе ведь можно и без исключений не совсем обойтись так то наши наши дебри писали на оси и
00:07:38 - 00:09:12
нормально принципе использовал исключением да как ты никогда не задумывался ну скорее всего скорее всего бы использовала наверное исключение ну по привычке не по привычке не знаю я наверное сначала почитал как про подкованный скорее всего бы использовал ну ну интернет бы тебе конечно не помог потому что там есть как за так и против примерно как там примерно как про плоскую землю то есть есть много раз или не все из них одинаково полезна конечно вот сказать про excel еще вопрос вот мы зовем то люди в джаве есть такое
00:08:24 - 00:10:02
исключение как out of memory xix она кидается когда там локатор попробовал выделить память под какой-то новый объект памяти нет и на тебе out of него лексин тут возникает немедленно вопрос ведь грома исключение в джаве какой-то это тоже объекты что где воссоздать нужна память и получается что у нас по памяти нет но мы должны создать out of memory exception-ы бросить его то есть это какой-то такой получается где моя память как делается причем ведь она не самой маленькой то есть там не знаю сам класс клюв у него возможность stack
00:09:13 - 00:10:26
trace то есть это исключение вполне может там занять не знаю ну допустим килобайт тебя а здесь нам не хватило памяти говоря там локации какого-нибудь крошечного объект объекте к байт на 40 . как вот это вот тела речи не разрешается память лет но и создался и бросился на интересно вопрос но я так предполагаю что во-первых скорее всего он бросает их ships from out of memory когда там кто-нибудь там хип так называемых 90 объекта хранятся до не может выделить падает ну возможно есть какой-то кусок памяти где который предназначен как раз
00:09:50 - 00:11:40
для таких вещей возможно сейчас ну я бы так предположил так скажем честно не знаю ответ на этот нос заранее грубая выдернул какой-то такие вещи при старте платформы или когда потом попотчую вот то есть если ты был был дизайнер ноги this onto a его зарядили видел как он там кусок памяти как раз вот такие вещи получается менее логично для торта хорошо давай дальше чуть чуть базам вернемся вот ты наверное не знаю как в этом проекта в прошлом наверно сто пудов у вас была такая штука как у коннектор до базы до было начинай
00:10:44 - 00:12:23
какой-нибудь baby happy и может быть и летом сид как он считает себя более 100 до хикару есть еще не счетом кто то я не помню не суть как и чем они вообще типу для чего нужны чтобы держать какое-то определенное количество коннектор базе данных получается держать мысли body perfect ну как сказать устанавливается connect с базой данных мы в памяти условно охранник оплата определенное количество этих коннектов и при необходимости из-за того пула берем connect для определенной операции выполняем и возвращаем обратно стул потому что как я
00:11:38 - 00:13:20
понимаю установить коллега с базы данных достаточно такая дорогая операция и так скажем для ускорения использует такой подход как ул и коннектор иногда их начинает не хватать и начинают их под хочет побольше хватал коллектор на пол в пуле чтобы было больше да да там опять же не знаю вот если ты пишешь свой путь и зайдите в коде ты получил connect испуга его использовал какие-то там вопрос slow не знаю select апдейты не потом сделал commit транзакции я закрыл и потом на конекте ты вызываешь метод que vous ты его за
00:12:29 - 00:14:05
потому что ты же должен connect как бы отпустить но если ты дергаешь клаус to connect будет закрыт и в каждом своем ну вот грубо если в стринги то то после того как твой твой прозрачный метод кончил столько нет там и закрылся автоматическими спинка почему делает кажется нам помогает если мы будем постоянно на коннекте дергаем клаус но этот курс ну ты согласен вот с первым моим скользим что при на самом деле в конце после того как из коробки как работал при на нём должен домик клаус но удар согласен ну когда у нас поднимается блин
00:13:17 - 00:15:08
я так понимаю все равно нас остается все параметры там подключения какие-то там аутентификационные данные вот это вот все возможно в этом плане как растают где ну я незнаю я представляю как они full of connection pool как некое количество там не знаю каких-то объектов памяти до скажем и все равно у них остается себя внутри вот эти вот все параметры которые нам необходимы для подключения там не знаю параметры там какой drawing использует имя драйвера кровля имя пользователя пароль миязаки параметры
00:14:16 - 00:15:42
коннектор химич рид ты молоток прямо туда все это некая совокупность данных пробежка по ирану скорее всего там открыты соки какой-нить остается он наверно его не закрывает каждый раз принципе верно конечно да то есть на самом деле этот пул он тебе дает не прям родной connect дуба zombies свой connect id и при только николы на вот этом его ура перед и он этот класс не уходит в реальный в в реальный connection да там под колеса клаус просто говорит что все этот connect можно вернуть то есть там практически клаус просто
00:14:59 - 00:16:23
переопределены он не уходит туда да потому что иначе нет смысла при постоянной я вышибу колос так потому что основная идея как вот я читал что накладные расходы именно на открытие тогда действительно да да верно да хорошо но принципе да как бы что там остается только конечно тоже остается на 1 час тот сам этот объект ткани джей ди би хищный жилого объекта хорошо несколько лет назад еще там долл взлета катона кстати выкуп не используйте у нас пройти весь подлинную я такое видел что он есть так скажем у
00:15:41 - 00:17:16
нас там типа я так понимаю в текущем проекте где вот и сейчас работают там три сервиса микро сервиса не знает возник на подлинно написано 1 на джаве который я немножко успел поковырять и остальными kemppi сам лично но вопрос не про точно так так вот 200 наверное 5 назад если правильно помню еще до взлёта котле на ходила такая как бы штука как навоз next big java то есть это люди тролля по интернетом это мечтали о том что вот если сейчас примеру взять java вот как она есть и чу ним и и если на модно поломать у нее
00:16:30 - 00:17:59
обратную совместимость причем не только на уровне стандартного обратите то есть пример какие-то класс в этим дозняк но и на уровне слова языка какие-то ключевые слова какие-то конструкции свободе и языка можно выкинуть и никто за это не осудит вот это все называлась помню next big java как будто кивот мечтателей вот и люди там предлагали очень многие штуки типа я вытянул работы я там этим вот это вот если вот я сейчас тебя спрошу если бы сейчас реально ты пришел уроков скал так тимур давая немедленно список следующий java будет
00:17:15 - 00:18:33
вот без того что ты в нем напишешь вот прям это мамой клянусь лориэль женского белья вт и клянусь слышит жарить не будет вот и бы вот список что добавил вот чего ты с java нахер вытянул что точно венера до и точно это было самом начале неплохая концепция заряд добавленный в язык либо стандартной улететь или без самой джавы хороший пункт 1000 скажешь я бы выкинул чек tax ответ вот именно примерно где-то на таком уровне и если есть что то такое что бесит что exceptions и унесла что мне прям что-то есть такое что у меня
00:17:54 - 00:19:27
бесит возможно я бы какие-то там мелочи для сахар с помощью придумать ска вам рассказать чтобы я выкинул 2 метра что были добавить добавить язык чет может любой дурак они он только этим и заняты других языках а вот что-то как бы что-то вырезать такое чтобы сделал язык лучше окажется более такая интересных задач как это ну да так вырезать но я бы наверно по вырезал бы возможно примитивные типы монастыри все объекты зачем вот это путами сомосе отлично ну я но все он смеется да чтоб за ведь даже определитель был переменную это надо там
00:18:39 - 00:20:42
писать больше больше не уборщица возможно многословны это все дело было больше большие богу борщей но тут тебя услышали потому что g1 sky новый и там раньше клей и в один развитие это идея что предпочту появился этот так чуть-чуть как пограничную кто тут но принципе норм поставок тут trial вышли еще он может быть может быть вот если возвращаться там к типам ну возможно блин ролей тоже было бы оставил бы тоже ну там is released зачем нужна обычно массив то интересно интересные мысли бар массива я как-то не думал
00:19:42 - 00:21:22
наверно действительно можно и хотим . так и слуги помечтать выкинуть блин ломать не строить значит они могут придумать такое возможно вот если я так понимаю что все что связано с графика на текущий момент это тоже скорее нету чем живет смысле да stop & profit это диск окна график вот эти пики то плиты были в свое время но это карма что их уже выкинули такие вот вещи возможно наверное даже принципе либо вытянуть либо как-то прямо сильно делить чтобы это всем присутствует только как-то отдельно пакет
00:20:33 - 00:22:11
какую-нибудь вот жевать выпей такой атаку поступили сейчас ночь 2 вынесли там ну да еще сюда не иначе невозможно выкинуть так ну отдавай получении чего-то мне не нравится например когда ты делаешь и импорт какого-то класса да что ты не можешь алиасом задать например но бывает такое учение в пакетом название класса 1 а вот это че ты меня мне нравится честно скажем я бы добавил алиас наверное было бы неплохо бы вот ну не знаю если отчета я подумаю над этим когда когда видно мало еще печные языки не выработался каком таком
00:21:22 - 00:23:20
стойкое отвращение поначалу мне не даст вам поттер matching они тут такие какие-то вещи кастрированных одно наоборот казалось прекрасным что столько библиотек всё работает замечательно когда кто-то для тебя уже прописав 100 percent библиотек за началась совсем и давай если не против ты вообще в java канал писал с комками сталкивалась как то есть нет не сталкивался конечно вот то что в книжке немножко почитал так скажем какие-то по делу вещь самом начале ну не знаю допустим ну давай я все-таки попробую о чем россия может
00:22:22 - 00:24:00
быть получится разговор есть ну а хотя бы сам какие-то не несколько потоков делу как ты на них работу запускал да там 3d запускал там определял а ну шилде когда я считал солдатам были примеры как делать очереди там родился в пансион и дело там семафорами что-то играл с вот так ты любишь это shell час пишут про очень редкий contigo да там в голове этом не под заветам 7 или 8 книжка была там вот идет про конкор расти глава джами воду на примере очереди такой примитивный объясняет вот эти вот блокировки то есть чтобы как у
00:23:11 - 00:24:56
нас together записала консилер под вечер а он на чему тебе объяснял на каких на каких скажем так украинцев на а просто на он делал этот самый а я блин могу кастовать но по-моему просто использовался вот этот обычный мьютекс объекта нет проблем у людей давай такой просто вот у тебя есть тренд и ты в него там засуну какой-то свой rumble и потом делать какую-то работу там чего там считаю считают стоит и вдруг у тебя в этом треде появляется какая-то операцию и скверу ходить куда-нибудь в hd происходить очень там получить
00:24:03 - 00:25:43
удаленного сервера и ты точно знаешь о своей стороны сервак тормознутый допустим отвечает тебе две секунды вот чтобы и вот ты делаешь это признаем словно там url ну это как бы всегда кот том делаешь этот урок вич и что в этот момент происходит с этим потоком вот он дальше пойдет не так хочется он заблокируется получаться он будет ожидать если это синхронно грузов он будет ждать пока там ответится той стороне а можно как-то и если можно имеет ли смысл как-то эту работу вот эти вот 2 секунд ожидания как так куда ты из
00:24:54 - 00:26:12
этого потока убрать чтобы он не тупил а дальше там читал дальше вот дела что делает но сейчас я честно скажу что я не могу так придумать сходу но я так понимаю что это как раз то что ты пытаешься спрашивать это как раз про sync раньше ну паттерн react а вот этот new а и и вот эти все вещи между когда вносить концепция буферов там вот это я и не думал что я пытаюсь такие интересные вещи спрашивать но я так понимаю что у нас есть там completo был фьюче для таких вещей как раз когда мы там отправляем какую-то задачу вот чтобы
00:25:33 - 00:27:04
тренд у нас смог продолжить работу потом получить какой-то результат нет ну в принципе да ну то есть положить этот этом у тебя дети любить это у меня так смысл в том чтобы и если надо положить вот этот вызов эту и эту толпу то операцию куда-то поддельный потоков как это сделать ничего тебя не слышно так я просто закончился то есть идея в треде саму запустили ну как вариант на какой не запустить сторонние треть наверно чтобы он там был операции вернуть результат так ну понятно хорошо ничего так стать
00:26:19 - 00:28:14
и вдв gm есть потоки демоны потоки не демоны это прямо там это тобольске флаг там у потока и сада
00:27:23 - 00:27:43