Лучшие вопросы на интервью

За последнее время я побывал на интервью в нескольких девелоперских компаниях Харькова и отвечал на массу интересных вопросов, которыми и хочу поделится.

  • Почему не следует использовать массив в качестве ключа HashMap?
  • Что такое MapReduce? Формальное определение MapReduce? Основные MapReduce фреймворки?
  • Почему не следует использовать объекты String.intern() в качестве ключей кеша?
  • Какая структура данных лежит в основе HashMap? Какова вычислительная сложность поиска в HashMap?
  • Какая структура данных лежит в основе TreeMap?
  • Дан класс A содержащий поле count типа long. Два потока имеют доступ к одному и тому же объекту класса A. Потоки запускаются одновременно. Первой операцией первого потока является присвоение значения 10^10 полю count, первой операцией второго потока является вычитывание значения поля count и вывод его на печать. Каким будет вывод второго потока?
  • Что такое Active Record? Чем Active Record отличается от ORM?
  • Что такое XA-Transaction? Что такое эвристический commit & rollback?
  • Что такое Clustered Index в базах данных?
  • Как на уровне базы данных реализован join?
  • Как реализовать получение уведомление о событиях произошедших на серверной стороне web приложения?
  • Что такое CQRS семантика?
  • Пусть существует два набора потоков. Потоки из первого набора выполняют продолжительные вычисления. Второй набор состоит из значительно меньшего числа потоков, которые сохраняют результаты вычислений в базу данных. Как организовать взаимодействие этих двух наборов потоков?
  • Пусть существет база правил состоящая из порядка миллиона правил. В приложение поступают события. Каждое событие должно быть проверено на соответствие правилам и обработано ими. Как реализовать решение обеспечивающие максимальную производительность?