Вопросы с senior java интервью [1/3]
Ғылым және технология
Всем привет!
Я прошел и провел достаточное количество интервью и решил поделиться типовыми вопросами с собеседований, всего планирую 3 части, все вопросы реально спрашивали.
Ссылка на код:
github.com/kirya522/medium-po...
Telegram канал с обсуждениями, вопросами, инсайдами:
t.me/kirya522
Чат для зрителей канала, также туда выкладываю интересные ссылки, источники:
t.me/kirya522_chat
Лайв канал
/ @kirya522-live
Поддержать канал
pay.cloudtips.ru/p/f4934136
www.donationalerts.com/r/kiry...
Тайм-коды:
0:00 - Вступление
0:25 - Эти вопросы реально спрашивают
0:52 - Как устроен ролик
1:53 - Примитивы и доступ по значению (доступ всегда по значению)
3:53 - Пример с Boolean, который был несколько раз
4:58 - Хэш мапа и equals
6:00 - Как сломать мапу мутабельным ключом
7:30 - Плохое распределение хэшей
11:36 - Фреймворк коллекций (Collection framework)
12:30 - Устройство листов, почему linkedlist не используют в проде
13:50 - Иерархия исключений
14:48 - Optional и хитрости работы с ними
16:50 - Thread-local и то как его использовать
17:50 - Наследуемый Thread-local
19:20 - Стримы и примитивные стримы
22:25 - Хитрости try-catch-finally
23:38 - Try-with resource, Autoclosable
25:15 - Conditionalы, как создать свой стартер, логика конфигураций
28:05 - Жизненный цикл бинов, логика создания объектов
30:14 - Докер и зачем он нужен
Пікірлер: 119
Ссылка на код: github.com/kirya522/medium-posts/tree/main/java/interview-questions Telegram канал с обсуждениями, вопросами, инсайдами: t.me/kirya522 Чат для зрителей канала, также туда выкладываю интересные ссылки, источники: t.me/kirya522_chat
очень хорошие наглядные примеры. побольше бы таких видео! спасибо
Очень хороший и познавательный ролик, многое для себя подчерпнул, как junior-специалиста. Качество контента на уровне, жду продолжение)
Шикарное видео! Спасибо! Жду новых видео по Java
Спасибо за видос, жду следующий👍
Круто! Очень интересно, спасибо)
Спасибо, очень полезно для подготовки. Компактно.
По собесам не ходил, через практику попал на работу и уже 4+ опыта, мидл. Сейчас возникла необходимость наверстать упущенное и походить по собесам, а контент идеально помогает закрыть все пробелы по пунктам, очень структурированно и наглядно, спасибо!
Прикольно! Интересная у тебя подача инфы
спасибо за такой формат. Продолжай. Да и вообще, твой канал находка. Пили еще ролики
Большое спасибо за видео! Качественная и полезная информация! Специально для юниоров, привет из Молдовы
Чувак ты просто спаситель)
Спасибо за контент)
Круто, оч полезно перед собесами, спасибо
Формат супер, но хотелось бы сразу объяснение примеров, без «можно посмотреть погуглить»
Очень крутой и подробный подход! Мне трудно себя заставить во всем этом покопаться, а ты это писал - так что молодец! Успешного развития!
@kirya522-dev
Жыл бұрын
Спасибо за обратную связь
Спасибо за шер гитхаба! Примеры отличные - чисто под вопросы!
Согласен, очень крутой формат с примерами и исходниками!
@kirya522-dev
Жыл бұрын
Выпустил вторую часть там также должно быть интересно
Очень классно получилось.
Вот ведь ты человечище!!
Тоже за последний месяц прошёл собесы в 43 компании.) С видео в основном согласен.) Все собесы разные, могут как и джун вопросы спрашивать, так и стандартные, так и глубоко копать Сеньорские вопросы, могут за собес сказать - вот тебе 6 алгоритмических задач на 1.5ч, давай решай.
Отлично!
Это огонь🔥🔥🔥🔥🔥
@kirya522-dev
Жыл бұрын
Ну стараюсь
Дуже гарне відео. Дякую
Отлично
Супер крутой контент!!! Так держать! Что за трэк играет на фоне?
где можно прочитать, посмотреть подробнее про спринг бут, в том ключе как вы рассказываете?
14:10 думаю этот объект ексепшена уже заранее создан
ненавижу проходить интервью и вот я тут, спасибо.
Пока я ещё даже не Джун, но уже со словарём понимаю, что ты говоришь😂
7:26 - через entrySet() не найдём? Он пропадёт (объект)?
Спасибо.
@kirya522-dev
Жыл бұрын
Вам спасибо за просмотр
Спасибо, подписался. Про Хэшмап Трегулов хорошо объясняет в "черном поясе" - как работает, почему может выродиться до линкед листа и т.д
@user-pq1mq8gi4p
10 ай бұрын
Не может выродиться до линкед листа, уже давно не может.
@graices4324
8 ай бұрын
почему не может?@@user-pq1mq8gi4p
Афигеть, я проходила у вас интервью 😅
@kirya522-dev
3 ай бұрын
Надеюсь всё было хорошо
11:25 - 8 элементов и 64 бакета -- условие для красно-черного дерева
С исключениями в Спринге положили очень качественные грабли, @Transactional по умолчанию для unchecked, как и ожидается, выполняет откат транзакции, а для checked, как совсем не ожидается, выполняет фиксацию транзакции.
@user-gw6df6ns7e
3 ай бұрын
Ну логика в этом есть. Мы не ожидаем и на всякий случай откатили. Когда checked, то сам можешь заметить.
Мне как синьору, наоборот, подача прям зашла
Имхо, лучше один раз попробовать, чем сто раз услышать. Автор видео проделал колоссальную работу, подготовив материал в гите для самостоятельного познания на практике всех тем ролика. Спасибо! P.S. Не ошибается тот, кто ничего не делает.
@kirya522-dev
Ай бұрын
Я хотел, чтобы было полезно, для этого надо пойти и посмотреть. Рад, что понимаете
Я рассказывать не буду, все можно посмотреть 👍 топ
В primitivesByVale - перегрузки для Assertation.assertSame от int не существует - произойдёт auto boxing в объект и если заменить в первом примере значение на, пусть 128 - тест упадёт, по причине, указанной во втором тесте. =)
@kirya522-dev
11 ай бұрын
Действительно, спасибо за подсказку
@nataliaa6880
7 ай бұрын
Так при 128 он и должен упасть.
Вообще, в LinkedList есть дофига фишек, которые никто не используются, потому что не шарят в нем, ну например: его можно использовать как queue, как stack, можно использовать ListIterator, а это совсем другой функционал по сравнению с Iterator, где можно идти вперед, назад, на ходу удалять элементы или добавлять элементы во время итерации. Очень он полезен для алгоритмических задач, как раз из-за ListIterator, Stack, Queue, DeQueue где можно в любой момент начать по другому его использовать
@kirya522-dev
4 ай бұрын
Хорошее дополнение
@Alex-gj7mu
11 күн бұрын
Для queue есть отдельные классы реализации. Для stack можно использовать ArrayDeque. Конечно, для решения небольших алгоритмических задач можно обойтись реализацией, которая предоставляет нужные методы. Для использования в проде надо выбирать исходя из быстродействия и потребления памяти, в чем LinkedList проигрывает.
Сколько ты офферов в итоге получил и на какую сумму? Кстати ты на рф рынок только собесился или европа / штаты?
@kirya522-dev
Жыл бұрын
13 суммарно, ага только рф
Фрагментация в памяти)
@kirya522-dev
9 ай бұрын
Бывает)
Не очень понял сравнение прохода итератором по ArrayList и LinkedList, откуда там большая разница? В ArrayList в массиве лежат только ссылки, за объектами по ссылкам все равно придется ходить.
@kirya522-dev
10 ай бұрын
Разница в логике аллокаций, единым куском и разбросанными объектами в куче, при итерациях это сильно играет
@user-pq1mq8gi4p
10 ай бұрын
@@kirya522-dev так у ArrayList тоже объекты в куче разбросаны и тоже за ними ходить нужно, я не встречал информации, что под все объекты из ArrayList выделяется непрерывный кусок памяти, где-то описано такое поведение?
@user-pq1mq8gi4p
10 ай бұрын
@@kirya522-dev попытался найти информацию про выделение непрерывной области памяти под объекты ArrayList ииии это невозможно, мы банально не знаем размер объекта, поэтому непрерывная область памяти выделяется только под массив ссылок, а объекты размешаются в таком же произвольном порядке как и у LinkedList. Разница конечно будет, по ArrayList нам нужно сходить только по одной ссылке за объектом на каждый элемент, у LinkedList для получения каждого элемента нужно перейти по двум ссылкам, сначала на следующую ноду, потом получить элемент, однако не думаю, что разница будет столь критична, особенно если в элементе тоже есть много не примитивов в которые нам нужно навигироваться, плюс/минус один переход по ссылке не выглядит таким уж катастрофическим.
Привет, подскажи плиз что за клавиатура у тя там, модель как называется?
@kirya522-dev
Жыл бұрын
Сплит клавиатура, самая дешёвая которая была Cloud Nine ErgoTKL Ergonomic... www.amazon.com/dp/B09G5L6Z53?ref=ppx_pop_mob_ap_share
это вопросы уровня junior
Да мне джуны это все на собесах рассказывают. Ну почти все)
Мне понравился формат. Досмотрел видео целиком. И подача интересная, и хорошо, что есть код, в котором можно покопаться. Иногда как будто речь со сленгом становится "пацанской", но думаю со временем и опытом это пройдет.
@kirya522-dev
4 ай бұрын
Корни выдают)
запиши видос плз, где правильная последовательность изучения спринга, чтоб стать гуру. А то у него дофига док и не упорядоченный сайт, который просто ведет к квикстарту спринг бута. Мол сначала изучили спринг бут (каким образом, что там под капотом и как точно все в совокупности поднимается/работает, либо пример со стектрейсом), потом допустим web/mvc, что там за паттерны и почему там отдельный диспатчер сервлет. И тд
@kirya522-dev
Жыл бұрын
Слишком узкая тема, советую почитать статьи на медиуме и оттуда понимать что и где надо
@user-iq9rg4te3e
Жыл бұрын
Либо пройтись по книге Spring Boot in action
@xstorm9939
9 ай бұрын
java ee uchi
Хэшмапа никогда не даст O(n), попробуйте объяснить почему))
127 - предел для ==... (-128 -> 127) пул Интов называется создаешь интежер в этом диапазоне, тебе просто летит ссылка на объект из пула
@AzatYulmukhametov
8 ай бұрын
погоди, OutOfMemmory же Error а не Exception
@kirya522-dev
8 ай бұрын
Я про это вроде бы рассказывал и размер пула флагом можно подкрутитт
@eugene676
4 ай бұрын
@@kirya522-dev как понять "подкрутить" флагом? Размер пула же невозможно изменить...
хм, очень поверхностные вопросы, как будто на джуна совсем, а не на сеньора, где 90% интервью это про системный дизайн, работу в команде и какие-то более специализированные инструменты и технологии, местами уже как для профессиональных DBA и DevOps уже, а тут все очень общее и простое, хотя может это у меня уже профессиональная деформация)) но в целом очень интересно записал)) UPD: блин начало пропустил, а ты же там сказал, что это начальный уровень)))) сорян)) надо слушать вступления)))
@kirya522-dev
Жыл бұрын
Ага) Но вообще хотел пока только жабу разобрать, в ширь от опыта зависит
@alenache1
Жыл бұрын
многие "синьоры" плавают в базе. Тулзы, предметную область и инфраструктуру знают, а какие-то простые вещи уже забыли. Или не знали никогда)
"рассказывать не буду", "можно полазить самому", "погуглите", "это очевидно и понятно"... - список выражений, которые совсем не хотелось бы встречать в подобных материалах, но в данном видео их слишком много
честно говоря какие то вопросы уровня джуна
@kirya522-dev
Жыл бұрын
В видео как раз рассказал, что всего 3 части по сложности
Сеньор джава, господин сишарп, мистер питон, герр лисп, сударь паскаль
@kirya522-dev
Жыл бұрын
Пожилой боров
А это точно вопросы сеньору? Просто меня на двух собесах на джуна спрашивали почти про всю эту дроч
@MrKlive96
Жыл бұрын
Значит мог на сеньора сразу подавать :) Хотя дальше наверное сложнее будет
@kirya522-dev
Жыл бұрын
Я собесился на синьерский грейд и все это спрашивали так что)
@Das.Kleine.Krokodil
Жыл бұрын
дай им ссылку на это видео скажи чтобы не шалили
@eikolyakov
Жыл бұрын
Ну а какая разница на сеньора или Джуна? Думаю, от Джуна просто не ожидают подробностей по всем темам. А так все равно спросят сначала основы: 1. Контракт equals hashcode 2. Коллекции, ООП 3. Исключения, многопоточка Эти вопросы почти 100% спрашивают, гдето больше, где о меньше, возможно, если вы сеньор ожидают, что вы просто будете сразу отстреливать подобные темы, от Джуна наверное допустимо, что он чего-то не знает, не помнит.
@kirya522-dev
Жыл бұрын
Да, именно так и есть, по темам попрыгали как фильтр и можно за всякое поговорить
дякую в мене трохи інші правда були
видео не для помидоров, скорее джунам
@kirya522-dev
Жыл бұрын
Ну я сказал же что части будет три)
@maximelmanov6719
Жыл бұрын
@@kirya522-dev я тебя не вынуждал использовать sinior в названии ролика. Ты так же мог Джуна вклеить
@kirya522-dev
Жыл бұрын
Видео про мой опыт) и это у меня тоже спрашивали, вопросы же как фильтр по нарастающей идут
@Nickilangelo
Жыл бұрын
@@maximelmanov6719 душный
@maximelmanov6719
Жыл бұрын
@@Nickilangelo согласен, есть такое. Но если автор поставит себя на мое место, то поймёт, что он по сути обманул зрителя. На утубе полно видосов с подобным контентом, но делаются они для джунов/джунов+ и названия у них соответственные
При всем уважении, подача материала очень хромает. "Вот смотрите, мапа, вот замутировали ключ, вот смотрите, это не работает". Конец. Почему не работает, что происходит, не понятно. Да и слушать такие фразы очень тяжело.
@kirya522-dev
Жыл бұрын
Да, я хотел найти баланс между все рассказать и примеры или просто сказать вопрос, чтобы интересующиеся сами разобрались в теме, в следующем выпуске сделаю темы, к ним уточняющие вопросы и список источников как найти ответ.
Мапа с мапой - вас за синьора и близко не держали
@kirya522-dev
Жыл бұрын
Это интересный пример отмутировать ключ, вопрос про это
Вроде бы и все рассказал и ничего не рассказал
Такими видосами ты оказываешь медвежью услугу как соискателям так нанимателям. Люди не вникая в детали теперь могут заспидранить собесы, тупо заучив ответы и не понимая реально что и как работает. И от этого в итоге проиграют все. Я против таких видосов.
@kirya522-dev
8 ай бұрын
Я рассказываю в деталях, кому интересно погрузятся и изучат подробности
@KavboiHaggis
8 ай бұрын
@@kirya522-dev херня в том кому интересно они и так все изучат, а кому нет у них цель найти решебник и .
блин открыл видеоролик что посмотреть ответы в видео "пойдите погуглите, сами проверте, это я вам даю поделать как домашку"
@kirya522-dev
11 ай бұрын
Я делаю так, чтобы кому надо разобрались и углубились
Мы стажеров спрашиваем по ат по этим вопросам ))) кроме докера , бинов и потоков ) ну и еще вопросы по ат кидаем :) видимо мы перестарались слегка
@kirya522-dev
Жыл бұрын
Ну это первый выпуск и просто набор тем спросить то можно вглубь понимание)
07:22 Киря, насчет мутабельности ключей и сломанной мультимапы не согласен что значение потеряно навсегда ты не попробовал отмутировать оригинальный ключ. тогда значение можно снова достать и дупликат работает т.е. будет такой тест: // revert the original map key => working again originalMapKey.remove(2L); Long tryAgainMutated = multiMapMap.get(originalMapKey); Assertions.assertEquals(99L, tryAgainMutated); // try again with same object key => working Long tryAgain2 = multiMapMap.get(duplicatedMapKey); Assertions.assertEquals(99L, tryAgain2);
@kirya522-dev
3 ай бұрын
Слушай, а там же хэш должен перестроиться в дереве, чтобы найти было можно элемент
@igormyatlyuk503
3 ай бұрын
@@kirya522-dev не очень понял твой коммент. после реверта оригинального ключа все работает снова, но я пошел дальше и действительно "сломал" мапу и сделал значение недоступным. 99L - изначальное значение, а 88L добавлено с помощью duplicatedMapKey. 88L можно сделать недоступным. вот тесты: ```java // put another value with duplicated unmodified key multiMapMap.put(duplicatedMapKey, 88L); Long valueForDuplicatedKey = multiMapMap.get(duplicatedMapKey); Assertions.assertEquals(88L, valueForDuplicatedKey); // revert original object key => working again originalMapKey.remove(2L); Long tryAgainMutated = multiMapMap.get(originalMapKey); Assertions.assertEquals(99L, tryAgainMutated); // try again with duplicated object key => working again // but value 88L is inaccessible!!! Long tryAgainForDuplicatedKey = multiMapMap.get(duplicatedMapKey); Assertions.assertEquals(99L, tryAgainForDuplicatedKey); ``` В итоге в MultiMap лежат два схожих по equals/hashcode ключа, но достать можем только 1 значение по изначальному ключу.
@igormyatlyuk503
3 ай бұрын
@@kirya522-dev Дело не в том, что хэш должен перестроиться. На самом деле причина по которой мы не можем достать значение по duplicatedMapKey до банального проста. Там нет никакой черной магии. смотри. когда мы пытаемся выполнить multiMapMap.get(duplicatedMapKey); после того как отмутировали originalMapKey, мы попадаем в нужный bucket где лежит наш originalMapKey, НО поскольку originalMapKey.equals(duplicatedMapKey) == false то значение не возвращается. и как только мы отмутируем originalMapKey обратно, то будет equals == true и значение вернется