Собеседование Java Spring - Разбор вопросов с собеседований на Java Developer

Поделиться
HTML-код
  • Опубликовано: 18 июл 2021
  • Собрали самые интересные вопросы с собеседований на Java-разработчика. В видео две части. В первой рассказываем про Java: Коллекции, Hash Code & Equals Contract, Functional interfaces, Stream API, Garbage collector, устройство памяти, heap, concurrency.
    Во второй - про Spring: Spring Beans, Spring Data Repository, Аннотации, Programmatic TM, Spring MVC
    Стань частью команды MAD BRAINS!
    madbrains.ru/java-vacancy?utm_...
    Ссылки из наших видео, полезные статьи в телеграм-канале
    t.me/skills_by_mad
    Техно - это внутренний еженедельный митап Mad Brains, на котором мы делимся опытом, знакомимся с актуальными технологиями и темами в мобильной разработке и не только.

Комментарии • 98

  • @khatangatao
    @khatangatao Месяц назад +3

    Очень хорошее видео для подготовки к собеседованиям. Мне сейчас отлично помогло вспомнить множество моментов, которые я подзабыл

  • @Das.Kleine.Krokodil
    @Das.Kleine.Krokodil Год назад +24

    Spring framework
    28:00 Зачем нужен Spring
    29:13 Компоненты Spring
    31:26 скоупы бина: синглтон, прототайп
    32:40 Цикл жизни бинов
    35:18 Spring Data
    39:39 Отличия компонентных аннотаций: @Component, @Service и т.д.
    41:52 @Transactional
    43:14 @Transactional Propagation
    46:11 @Transactional проксирование
    49:28 Транзакциями можно управлять и программно
    50:18 Spring MVC
    51:06 Отличия @Controller и @RestController
    51:54 Spring Boot vs Spring
    54:40 Совет по собеседованиям

  • @maraeluf-brown9296
    @maraeluf-brown9296 2 года назад +16

    Огромное спасибо автору за такой большой объём полезной информации в таком, казалось бы, небольшом промежутке времени!
    Невероятно!
    Успехов вам в карьере)

  • @ivanstrelka3448
    @ivanstrelka3448 7 месяцев назад +4

    Огромное спасибо автору за такой большой объём полезной информации

  • @iliapetrov1743
    @iliapetrov1743 Год назад

    Круто, отличный доклад!)

  • @sergiytychkin
    @sergiytychkin Год назад

    Жаль, что не могу поставить несколько лайков. Коротко и по делу. Спасибо!

  • @user-fj7on8le9g
    @user-fj7on8le9g 2 года назад +16

    ВООООООООООООот крутое видео, вот именно так надо отвечать, создается впечатление, что человек не зазубрил, а реально понимает о чем говорит

    • @user-fj7on8le9g
      @user-fj7on8le9g 2 года назад +1

      Потому что если ты будешь отвечать очень быстро и типа как из пулемета, то понятно что заучил. А так видно что человек говорит спокойно без спешки

    • @aww8609
      @aww8609 2 года назад +3

      А зачем создавать впечатление и тянуть время, если можно быстро и ясно сказать

    • @1986sunlight
      @1986sunlight Год назад +6

      @@aww8609 потому что мы живём в мире лицемерия и лжи, где главное не суть, а обёртка :)

  • @sheermoon2012
    @sheermoon2012 Год назад +2

    привет я работал програмистом уже, мне это видео помогло все вспомнить для собеседования

  • @hatipov1986
    @hatipov1986 2 года назад +6

    Супер видео, очень познавательно

  • @Vladimir-vd2im
    @Vladimir-vd2im 2 года назад

    Крутое видое! Все по делу.

  • @antNecrom
    @antNecrom 2 года назад +29

    В описании стрима пример с стримом, внутри которого по каждой записи обращаются в БД, а потом фильтруют по зарплате. Не делайте так в реальных проектах. Сделайте один запрос к БД со списком айди и сразу в запросе отберите по нужной зарплате

    • @alex0destroyer
      @alex0destroyer Год назад

      что бы не выбирать лишнее и сразу отсеять ненужное на этапе выборки из бд?

    • @antNecrom
      @antNecrom Год назад +2

      @@alex0destroyer да, просто такой запрос сделать чтобы сразу отобрать из БД только то что нужно. Вообще надо аккуратнее с обращением в бд из стрима, можно заспамить базу. Мы так однажды положили проект, потому что были вложенные стримы, и получилось около миллиарда запросов при открытии страницы 😅

  • @i7bro
    @i7bro 2 года назад +2

    Супер, дал подписку

  • @shum1635
    @shum1635 2 года назад

    спасибо за видео

  • @insurg
    @insurg Год назад +15

    возникло ощущение, что автор сам плавает в темах, которые разбирает.
    и если б кто-то задавал ему дополнительные вопросы, то он тут же посыпался бы

  • @Yeuppi
    @Yeuppi 2 года назад +12

    Макар макаром а макароны по расписанию)))

  • @AndreiVvedenskii
    @AndreiVvedenskii 2 года назад +1

    Мы на проекте заменили cms на g1. У нас много маленьких короткоживущих объектов.

  • @linargal7842
    @linargal7842 2 года назад +14

    PermGen уже нет в памяти, есть Metaspace

  • @MRoose
    @MRoose Год назад

    Спасибо

  • @avpmk
    @avpmk Год назад +3

    27:10 Нет, задачи начинают исполняться сразу после вызова submit

  • @vladpronin5033
    @vladpronin5033 2 года назад +14

    По-моему, автор допустил ошибку насчет многопоточки. Метод shutdown закрывает треды, которые выполнили свою таску. А submit как раз и вызывает метод Run, который оверрайдется через имплементации интерфейсов. Если не прав, поправьте, пожалуйста.

    • @MadBrains
      @MadBrains  2 года назад +6

      Да, вы правы, ошиблись, спасибо за конструктивное замечание! :)
      В при вызове submit() мы передаем задачу в очередь на исполнение (и она исполняется по мере освобождения работников), а после метода shutdown() начинается прерывание простаиваемых работников, и возможности подтвердить новую задачу уже нет.
      Также можно добавить, что без вызова shutdown() программа в примере не завершится до тех пор, пока не пройдет время, указанное в методе awaitTermination(). Но если мы выполним shutdown() и не вызовем awaitTermination(), то программа завершится сразу после выполнения всей работы. Если же метод awaitTermination() указан, а работа выполнилась раньше (и мы вызвали shutdown()), то программа так же успешно завершится по окончанию выполнения тасков.

    • @vladpronin5033
      @vladpronin5033 2 года назад

      Спасибо за детальное объяснение!

    • @avpmk
      @avpmk Год назад

      Но только не активных, а всех засабмиченных.

  • @Qnoize
    @Qnoize 2 года назад +3

    какой порядок итерирования в ЛинкСете?) Вообще-то порядок добавления.

  • @user-pt2lq1ik7i
    @user-pt2lq1ik7i 14 дней назад

    11:08 HashMap не превратится в один большой связанный список, если количество элементов в корзине достигает определенного порога (обычно 8), то корзина преобразуется из списка в дерево

  • @kulabuha
    @kulabuha 2 года назад +2

    Про то что бывает с вырожденным списком в хэшмапе не рассказал и про то как настроить размер мапы

  • @cathello2900
    @cathello2900 2 года назад +1

    "Мидл и выше"
    Мидлы и выше всем нужны!!!!!

  • @romanzaripov3481
    @romanzaripov3481 8 месяцев назад +1

    Shutdown используется не для того, чтобы стартануть потоки, а чтобы их кильнуть по завершению.

  • @precisionist8568
    @precisionist8568 2 года назад

    java 8 release 2014! Да функциональные интерфейсы относительно недавно:)

  • @LobanovSpace
    @LobanovSpace Год назад +1

    Оч сумбурно

  • @user-jd4rl7im6d
    @user-jd4rl7im6d Год назад +4

    Тут сами почитаете, а это не спросят, а здесь ммммм.. ээээ.. ааааа
    И ошибок куча

  • @nazarhlukhaniuk2686
    @nazarhlukhaniuk2686 2 года назад +15

    Много затупов от автора, такое чувство, что читает с листа бумаги, где написано от руки... и постоянно - таким макаром)

    • @MadBrains
      @MadBrains  2 года назад

      Спасибо за отзыв! Будем исправляться

  • @Poriks
    @Poriks 10 месяцев назад

    По хешмапе еще, если хеши совпали, то перед эквалс сначала ключи на == проверяются, если на == ключи сопали, то смысла нет запускать прожорливый эквалс.

    • @MrRomanvideo
      @MrRomanvideo 24 дня назад

      Открою секрет правильный икввлз как раз сначала проверяет по ==

  • @user-cb9gk3oc5w
    @user-cb9gk3oc5w 2 года назад +5

    В принципе всё более-менее так. Но один вопрос упустил. ИСКЛЮЧЕНИЯ. Что это, зачем мы обрабатываем исключения, типы, иерархия, вопросы нехватки памяти на обработку и т.д.
    В целом... материал полезен, НО. С одним большим НО. Он полезен для тех, кто уже что-то смыслит во всех этих вопросах. Выучить вопросы по этому видео нереально. Если попадется вопрос, о котором ты не слышал (для меня это оказались прокси и Programmatic TM) то ничего не понятно от слова совсем.
    Но как вариант для прогонки перед собесом - вполне себе нормас. Как ориентир служит неплохо. Всем советую.

    • @1986sunlight
      @1986sunlight Год назад

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

    • @Silver-Parallaxis
      @Silver-Parallaxis Год назад

      @@1986sunlight как успехи на собеседованиях? взяли на работу?

    • @1986sunlight
      @1986sunlight Год назад

      @@Silver-Parallaxis нет, из 7 собеседований 0 офферов 🙂

    • @Silver-Parallaxis
      @Silver-Parallaxis Год назад

      @@1986sunlight, жаль(( но все будет норм)

    • @1986sunlight
      @1986sunlight Год назад

      @@Silver-Parallaxis да я особо не спешу )

  • @TonySup
    @TonySup 10 месяцев назад

    HashSet нужно итерироваться?

  • @java_couch
    @java_couch 2 года назад +14

    автор ,промежуточные стрим операции не модифицируют стрим, а возвращают новый - это очень важный аспект

  • @shadrunov
    @shadrunov 4 месяца назад +1

    Я опытный, но стараюсь не говорить Не знаю. Наводящие вопросы обычно приводят к правильному ответу.

  • @TonySup
    @TonySup 10 месяцев назад

    В HashSet нужно итерироваться??

  • @nataly2163
    @nataly2163 11 месяцев назад +1

    Речь про стримы и джава 8, а потом внезапно permgen и привет 7я?

  • @svetlanafedorova654
    @svetlanafedorova654 2 года назад +1

    C java8 Perm Gen заменен на Metaspace, если я не ошибаюсь

  • @caffeinejavacode1475
    @caffeinejavacode1475 Год назад

    2:42 серьезно оборачивает, может даже укутывает,
    нужно единственое сказать что есть статисеские масивы и динамичские и расказать в чес разница

  • @user-rq1yp9ix8s
    @user-rq1yp9ix8s 2 года назад +8

    Качество записи оставляет желать лучшего)) но за видео спасибо)

  • @avpmk
    @avpmk Год назад

    20:31 MetaSpace с 8 джавы

  • @johnconstantine6331
    @johnconstantine6331 2 года назад +4

    Вектор это деприкейтед класс

    • @zakharka3938
      @zakharka3938 Год назад

      Зуб даете что деприкейтед?

  • @Edvard-Aliev
    @Edvard-Aliev 2 года назад +3

    С Чего это ArrayList медленнее ?

    • @MadBrains
      @MadBrains  2 года назад +2

      Это, скорее, синтетический вопрос, который могут задать на собеседованиях для выяснения понимания работы коллекции ArrayList под капотом.
      Так как ArrayList является классом, внутри экземпляра которого хранится обыкновенный массив Object[], то доступ к коллекции через метод get() добавляет в стек вызовов еще несколько методов, прежде чем получится объект по индексу из внутреннего массива, что ТЕОРЕТИЧЕСКИ накладывает доп расходы на процессорное время.
      + Обычные массивы, хранящие примитивные типы, хранят значения в памяти последовательно, в то время как ArrayList оперирует только со ссылками на объекты (включая обертки над примитивами).

  • @xWarTeX
    @xWarTeX Год назад

    perm gen заменили давно уже на metaspace

  • @Pan-ux3bq
    @Pan-ux3bq Год назад +1

    12:36 функциональные интерфейсы появились в жаве относительно недавно ) народ массово переходит на java 17 в проде. А для кого-то java 8 это "недавно"

    • @ODuoBatteries
      @ODuoBatteries 5 месяцев назад

      А что не на 21? Отстаете однако. Java существует очень-очень давно. Еще до твоего рождения. и прикинь с 8 по 21 версию весь этот гиперпрыжок произошел за последние 8-10 лет. Каждый год новая версия. Пока пишется один проект (а для ентерпрайз это 5 лет легко), выходит с десяток версий java.

  • @avpmk
    @avpmk Год назад

    2:26 Что-то сильно сомневаюсь что будет вообще какая-то разница. А если и будет, то на какие-нибудь тысячные доли процента и то будет пропадать когда jit заинлайнит вызовы методов ArrayList'а. Крч надо мерить. Чаще разницу можно будет увидеть на массивах с примитивами и и коллекциях, там да, там боксинг. Но опять-таки возможно jit на столько умён, чтобы выбросить массив объектов и заменить него примитивным.

    • @avpmk
      @avpmk Год назад

      А вообще переходите на скалу)) Там можно инстанцировать массив generic типа и если наша самопальная коллекция будет специфицирована Int'ом, то мы получим прям реально jvm'ный int[].
      Но вообще, конечно, этим на скале никто не занимается.

  • @user-ur7bn1kd1p
    @user-ur7bn1kd1p 6 месяцев назад

    Качество звуковой дорожки ниже всякой критики

  • @TheJabberwahh
    @TheJabberwahh 2 года назад +1

    Макар макаров

  • @Gorkiy751
    @Gorkiy751 2 года назад

    Каждый раз когда кто-то пытается мне на ютубе рассказать с умным видом, то что уже было разжевано до него "эээкая и ааакая через слово" В мире грустит один грамма-котэ. >.

  • @alexbivz
    @alexbivz 2 года назад +2

    аэаэа эааэаа ааааэаэаэ

  • @katerinak5997
    @katerinak5997 2 года назад

    А почему о паттернах то не поговорили

    • @MadBrains
      @MadBrains  2 года назад +1

      Не совсем к Java относится, можно отдельно обговаривать касательно всех языков. Возьмем на заметку в будущих видео

  • @eugenstadnik1923
    @eugenstadnik1923 8 месяцев назад

    Квалификация разработчика НЕ определяется на техническом собеседовании. Когда я бьіл мидлом у меня в менторинге бьіл один конь, которьій бьіл синиором. Уже стремно, не правда ли? Он без смазки на полированном легке прошел собеседование (если что - собеседование проводил не я) лишь только потому что преподавал всю єту премудрость в какой-то платной школе it-альянских технологий. Даже после окончания испьітательного срока он не смог толком закрьіть ни одну таску без посторонней помощи. И ушел (ок его поросили уйти, кароч его ушли) с проекта через месяц после окончания испьітательного срока. Если что - єто не мой гєп: другие миддл и джун чуваки после того как я вводил их в курс дела прикладной области без проблем решали проектньіе задачи на 3-й месяц работьі в тиме. После того как заказчик решил вьіпендрится и устроил рамп-даун - вся тима разбежалась, разбежался и я. Я подсмотрел вопросьі на собеседование для синиоров в сети и прошел собеседование в другую компанию на синиора лишь только потому, что знал ответьі на те вопросьі. Я уже четвертьій год работаю синиором в єтой компании, хотя по сути им не являюсь.

    • @iamdozerq
      @iamdozerq 6 месяцев назад +1

      Прошел собес + выполняешь таски = похеру всем кем ты себя считаешь, а кем нет. Маржа с тебя просто космическая. Я в своей конторе знаю сколько стоят мои рабочие часы - я будучи никем с зп 60к заработал конторе порядка ляма чистыми, с учетом моей зп и налогов за примерно полгода. Мое обучение и все прочее окупилось за 2 года работы 10+ раз. Не знаю какие затраты на все остальное у них, но как минимум 2 раза моя зп точно окупается, даже когда моя зп уже не 60к совсем.
      В этой области из воздуха берется польза. Даже если тебе переплачивают на 30-40% это не мешает им окупать тебя 2-3-5 раз, в зависимости от прикладной области.

  • @user-zi7ge2uf6q
    @user-zi7ge2uf6q Год назад +2

    Вы не понимаете, как устроен hashmap, то что вы рассказываете - неправильно.

    • @avpmk
      @avpmk Год назад

      Для 7 джавы всё верно. В чём он ошибся?

  • @tubenoidi
    @tubenoidi 2 года назад +1

    очень раздражает мычание "ааа", "мммм"

  • @n1k1ta73
    @n1k1ta73 6 месяцев назад +1

    Довольно слабо. Не хватает глубины изложения материала. Автор либо владеет материалом не достаточно глубоко, либо просто не подготовился хорошо для записи данного видео.

  • @aks964
    @aks964 2 года назад +16

    Я извиняюсь. Но формирование высказываний настолько кривое и не полное, что смысла в ролике нет.

    • @user-rk3ic3qz3h
      @user-rk3ic3qz3h Год назад +6

      Все равно польза есть. Можно использовать как план вопросов. Где пробелы, заполнять из других источников. Рассчитывать на такие видео, как полноценный источник информации не стоит. Это же не лекция, а в первую очередь пример вопросов и потом уже пример ответов.

  • @user-qo9kh2iq5p
    @user-qo9kh2iq5p Год назад

    Материал полезный, но как же ты заколебал мычать, чвяркать и кряхтеть. Прописывай сценарий себе заранее, чтобы каждые 5 секунд не слушать "ааа" "ммм"