JavaRush /Java блог /Архив info.javarush /Технические вопросы на собеседовании
Roman_kh
33 уровень
Харьков

Технические вопросы на собеседовании

Статья из группы Архив info.javarush
Привет всем, Джаварашовцы! Так уж случилось, что недавно я проходил собеседование и хотел бы рассказать, какие вопросы мне задавали предполагая, что идет позиция Junior++. Т.е. еще не мидл, но уже и не зеленый джун. Технические вопросы на собеседовании - 1Так вот, собеседование проходило по такому плану
  1. JavaCore
  2. ООП
  3. REST
  4. Базы данных.
  5. Инструменты, которыми пользуешься.

JavaCore

  • Вначале меня попросили нарисовать иерархию интерфейсов у Коллекций (это было не сложно, там всего их несколько (Collection, List, Set, Queue, Map).

  • В чем различие ArrayList и LinkedList (это один из самых заезженных вопросов и ответов в инетах просто тьма).

    Обсудили скорость выполнения запросов в них и какая разница между листами.

  • Вопрос про класс Object. Какие у него методы, что они делают.

  • Рефлексия. Что делает метод getClass(). Очень интересный вопрос, разберите его. Особенно про то, как получить всё про класс, пусть даже там приватные методы или переменные.

  • Спросили за многопоточность. Слабенько, как я считаю, так рассказать как ты понимаешь что такое многопоточность. Что нужно, чтоб запустить новый поток. Реально, если вы 20+ уровень, то эти вопросы для вас покажутся смешными.

  • Что можешь сказать про Stream. Это имеется в виду не про Java 8. Имеется в виду потоки ввода и вывода. Как базовые интерфейсы, какие они (символьные и байтовые). На понимание, никакой конкретики.

  • Исключения. Здесь опять-таки попросили нарисовать иерархию исключений, какие бывают, какие из них checked, а какие unchecked. Что нужно делать с Runtime исключениями. Назовите самое часто попадающее (NullPointerException).

  • Вопрос с тем, что нужно делать с checked исключениями(пробрасывать дальше или обработать — понятно и то и другое).

ООП

  • Что такое ООП в двух словах?

  • Какие еще есть парадигмы программирования? В чем их различие от ООП

  • Какие основные принципы ООП (наследование,полиморфизм и инкапсуляция)? Рассказать про каждый из них. Пока всё абстрактно, не привязываясь к какому-то языку.

  • Задача на понимание проектирования систем: есть Лошадь и Птица. Нужно получить Пегаса. принцип "has a" и "is a"

REST

  • Что такое REST. В Википедии об этом говориться очень круто. Реально статьи из Википедии для ознакомления хватит.

  • HTTP. Здесь тоже общие фразы. Его методы, для чего каждый из них.

  • Коды состояния HTTP. На какие пять частей делиться, расскажите про самые известные (200,204,404,500,501). Зачем они. Спросили еще про 401 и 403. Но я не знал их. Сказали они важные.

Базы данных

Здесь я рассказал, что знаю MySQL. Рассказал про три нормальные формы. Рассказал про Join'ы, какие бывают и нарисовал пересечение областей, в котором используются разные джоины. Рассказал про то, как я понимаю реляционную БД. Не забыл еще о про MongoDB — это NoSQL база данных. Через некоторе время я напишу и про это.

Другие инструменты

Здесь мы прошлись по моем резюме. У меня было написано, что использую Maven/Gradle для сборки, использую JIRA для тасков, git, Docker, Swagger. Для Continuous Integration — Stash, Bamboo, Puppet. Для тестирования JUnit, Mockito, JMeter. Я мог что-то забыть, поэтому если интересно — спрашивайте в комментариях постараюсь ответить. Это была первая часть собеседования. Теперь жду результаты и если да, то будет вторая часть. Напишу о ней как только так сразу. Всем кому статья понравилась и была полезна — ставьте "+". Пишите в комментариях. См. также мои другие статьи:
Комментарии (17)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
valera7979 Уровень 31
2 февраля 2017
спс. за почти 2 года на форуме сам не смог найти эту волшебную кнопку))
valera7979 Уровень 31
27 января 2017
Всем кому статья понравилась и была полезна — ставьте "+".
обязательно поставлю, как только пойму как это делается))
Torin Уровень 27
24 января 2017
Было бы еще круто услышать про вопросы на собеседование андроид! в инетах сильно много данных, которые разняться, интересны локальные реалии
karl93rus Уровень 11
23 января 2017
Добавил в закладки. Спасибо! Я так понял, что ты уже работал ДО этого собеседования? То есть это не первое собеседование и не первое место работы?
Cargeh Уровень 30
23 января 2017
Вот тут поподробнее можно: Задача на понимание проектирования систем: есть Лошадь и Птица. Нужно получить Пегаса. принцип «has a» и «is a»?

Такое точно было на одной из лекций, но я уже ничерта не помню :)

И как-то не так трудно было, по-моему, для Джуна+ то.
imp Уровень 31
22 января 2017
Добрый вечер. Информация оч полезная :)
а на чем применяли инструменты тестирования и как ими овладевали?