В данном репозитории находятся вопросы и задачи для подготовки к собеседованию
Этот вопрос может встретиться на собеседованиях в Google и Amazon Вам необходимо спроектировать ПО для музыкального автомата Какие вопросы следует задать прежде, чем писать код?
- Что проигрывает музыкальный автормат - CD, MP3?
- Как оно должно работать?
- Это бесплатный музыкальный автомат или платный
Такой вопрос могут задать в компаниях Amazon, Google, Adobe Необходимо спроектировать программму для работы вендингово автомата Какие вопросы следует заадть прежде, чем писать код?
- Вендинговый автомат поддерживает различные виды товаров и различные виды монет
- Должен ли вендинговый поддерживать функционал проверки цены, покупки, возврата.
Данную задачу можно встретить в таких компаниях как Amazon, Google, Adobe, Microsoft Необходимо спроектировать ПО для колоды карты. Что следует спросить:
- Если карты могут быть чем угодно, то что тогда является обощенным вариантом
Данный вопрос могут задать в таких компаниях как Amazon, Google, Adobe, Microsoft Вам необходимо спроектировать программу для управления парковкой Какие вопросы стоит задать перед написанием кода?
- Это одноуровневая парковка или содержит несколько уровней
- Одинаковое ли пространство для машины?
- Какой тип машин наиболее часто паркуется?
- Бесплантая ли это парковка?
В данном задании необходимо спроектировать программу для онлайн-библиотеки Какие вопросы стоит спросить прежде, чем начать писать код:
- Какая требуется функциональность
- Как много книг может быть прочитано одновременно
Этот вопрос задают на собеседованиях в таких компаниях как Amazon, Google, Adobe, Microsoft В рамках данной задачи вам необходимо спроектировать свою реализацию хэш - таблицы Что следует спросить прежде, чем писать код?
- Какая требуется функциональность?
- Как должны разрешаться коллизии?
- Какие типы данных должны поддерживаться для пары ключ-значение?
В данной задачи необходимо спроектировать программу для представления файловой системы Что следует спросить прежде, чем писать код:
- Какая требуется функциональность?
- Что из себя должна представлять часть файловой системы?
Данный вопрос могут задать в таких компаниях как Amazon, Google
Ваша задача спроектировать новую структуру данных - кортеж
Какие вопропросы стоит задать прежде, чем приступить к написанию кода
- Кортеж может иметь от 1 до n элементов, какой вид кортежа вы ожидаете?
- Какие типы данных будут храниться в кортеже
Данный вопрос может встретиться в таких компаниях как Amazon, Google, Adobe, Microsoft В рамках данного задания вам необходимо спроектировать задание программу для автомата по продаже билетов в кино Какие вопросы следует задать прежде, чем приступить как написанию кода?
- Что из себя представляет кинотеатр?
- Несколько ли кинозалов в кинотеатре?
- Какие типы билетов продаются?
- Как часто проходит сеанс фильма - раз в день, несколько раз в день, только в одном зале или в нескольких залах?
Данный вопрос может встретиться на собеседовании в таких компаниях как Amazon, Google, Adobe В рамках данной задачи необходимо спроектировать круговой байтовый буффер Что следует спросить перед написание кода:
- Должен ли быть буффер диманического размера?
В рамках данной задачи необходимо написать приложение для мониторинга потребления газа, холодной и горячей воды. UI не нужен, только REST API В данном приложении должны быть два метода - для добавления новых данных, и для получения данных о потреблении пользователя. Вводные данные должны быть провалидированы. Технические требования
- Java 8/11, Spring Framework (можно использовать Boot), Maven
- Использование других библиотек не запрещено
- Для хранения данных используйте HSQLDB
- Старайтесь писать поддерживаемый и тестируемый код
- Если вы считаете, что какое-то требование не описано, то делайте на свое усмотрение
В рамках данной задачи необходимо разработать приложение по управлению новостной лентой на сайте. Каждая новость состоит из названия, содержания, даты публицкаии и категории, к которой относится новость Каждая категория содержит название, и к ней может быть привязано несколько новостей
Приложение должно предоставленять следующие возможности по работе с новостями:
- Просмотр списка новостей
- Поиск новостей по категории
- Создание и редактирование новости
- Удаление новости
Требования/ограничения
- Java 8/11, Spring Framework(можно использовать Boot), Maven/Gradle(на ваш выбор)
- Hibernate
В рамках данной задачи необходимо написать свою реализацию Set. HashSet не гарантирует порядок элементов, в отличии от LinkedHashSet. LinkedHashSet использовальзовать нельзя
Вам дан файл с координатами разделенными с запятой - формат CSV. Первой в паре идет долго, а за ней идет широта По списку из файла необходимо вывести найти все города, если какой-то город не удалось найти - вывести сообщение о ошибке. В рамках этой задачи разрешено пользоваться любым публично доступным API сервисом, таким как Google Maps API Пример файла:
69.7016661,170.2999022
69.4132852,30.7984312
69.4031364,86.1907218
69.4003584,32.4501496
61.0318712,76.1025878
61.0063465,36.4495137
61.0023984,69.0184798
60.9794025,32.9725519
60.9612823,46.4814116
60.950855,29.1308372
59.8591523,38.3748782
59.7726848,30.7988557
59.7665925,60.0011703
59.7636635,60.1934525
59.7043309,30.7874571
59.6482998,56.771009
59.6272904,33.5072731
59.6215133,30.3934125
59.6047724,60.5753882
59.5681332,150.8084956
59.565237,30.1282473
59.5407098,30.877812
59.5351837,45.4576137
57.8468636,114.1866287
57.826974,29.9629389
56.5847888,104.114275
56.5586946,40.1228906
56.5243844,50.6782739
56.5232864,52.9943775
В рамках данной задачи необходимо написать реализацию метода, который
будет возвращаться существительное в зависимости от переданного числа. (Число от 0 до 100)
Используйте существительное - зерно
1 - зерно
2 - зерна
51 - зерно
100 - зерен
Необходимо спроектировать базу данных для приложения по поиску билетов База данных должна содержать данные о датах поездки, времени в пути, пункт отбытия, пункта прибытия и цены
В приложении есть сервис по генерации отчетов, который выглядит следующим образом. Интерфейс сервиса, его реализация и заглушечный сервис, который не выполняет полезной нагрузки и используется в тестовом окружении
ReportService.java
public interface ReportService {
Report generateReport();
}
ReportServiceIml.java
public class ReportServiceImpl {
public Report generateReport() {
return new RealReport();
}
}
ReportServiceStub.java
public class ReportServiceStub implement ReportService {
public Report generateReport() {
return new StubReport();
}
Перечислите и реализуйте различные способы конфигурации для создания бина ReportService
Необходимо написать программу для вычисления среднего арифметического числа Программа должна принимать на вход путь до файла, и выводить следующую информацию:
- Среднее арифметическое
- Самое большое число в файле
- Самое маленькое число файле
- Количество цифр в файле Если в какой-либо из строк файла окажется не число, то необходимо прекратить выполнение и вывести сообщение о ошибки. Пример валидного файла
12
13
14
0
Запуск программы должен осущесвлять командной
java -jar counter.jar <Путь до файла>
Вывод программы с валидным файлом
1. Среднее арифметическое = 9
2. Самое большое число = 14
3. Самое маленькое число = 0
4. Количество цифр в файле = 4
Вывод программы с невалидным файлом
Строка 1bac не является валидным числом
Важно числа в файле ограничены типом int
Вспоминаем школьный курс физики и как парсить JSON. Дан файл следующего содержания
[
{
"mass": 10.00,
"volume": 5.5
},
{
"mass": 3.00,
"volume": 1.1
},
{
"mass": 1.00,
"volume" :0.5
},
{
"mass": 1.00,
"volume": 0.5
},
{
"mass": 1.00,
"volume" :0.5
}
]
Необходимо написать программу, которая будет принимать на вход путь до файла и выводить рассчитанную плотность. Плотность = масса / объем
Перечислите различные способы внедрения зависимостей в Spring
В чем отличии git merge от git rebase?
В чем различие между аннотациями @Autowired и @Resource?
Что обозначает в Maven следующий тэг?
<packaging>pom</packaging>
Необходимо вычислить разницу в днях, часах и минутах между двумя датами Пример ввода
2021-01-01 00:00:00
2021-12-31 23:59:59
На вход подается строка в формате 10101
, то есть число 21
в двоичном представлении
Необходимо преобразовать число из двоичной системы счисления в десятичную
На вход подается массив чисел, необходимо отсортировать их с помощью "пузырьковой" сортировки
Для чего нужен Reflection API в Java?
Опишите процессы сериализации/десериализации
В чем заключается разница между Thread
и Runnable
Что такое состояние гонки(race condition
)?
Напишите минимальный неблокирующий ArrayList.
Достаточно всего четырех методов - add(), get(), remove(), size()
Важно нельзя использовать CopyOnWriteArrayList
Опишите для чего нужны сервлеты? Опишите их жизненный цикл
Как получить IP адрес клиента на сервере?
Для чего нужен первичный ключ в базах данных?
Какие виды объединении(join
) возможны. Опишите и покажите
пример
Расскажите про принципы ООП и SOLID
Для чего нужен паттерн строитель(Builder
)?
Для чего нужно свойство?
spring.jpa.hibernate.ddl-auto
Как происходит компиляция и запуск программ на Java?
В чем преимущество использования immutable
объектов?
В чем разница между перегрузкой(overloading
) и переопределение(overriding
)?
Массив является объектом или примитив? Является ли динамической структурой?
Для чего нужен метод System.arraycopy()
В чем различие между циклами while
и do-while
Как поменять значения переменных местами без использования третьей переменной?
Для чего нужна агрегационная функция sum в SQL?
В какой момент при создании бина вызывается метод бина, который отмечен
аннотацией @PostConstruct
?