Какие тесты пишешь? Какие фреймворки используешь?
Можешь рассказать поподробнее про переход на асинхронную модель? Что было до, что поменялось? Какие микросервисы были?
Что такое multi-catch в Java? Какие есть ограничения и правила?
Что такое HashMap и как она устроена внутри? Какая скорость операции get?
Как изменилось потребление памяти? Пришлось ли что-то настраивать?
Что такое оптимистичная и пессимистичная блокировки? Как реализовать?
Нужно ли оборачивать метод transferMoney в @Transactional и почему?
Два объекта ссылаются друг на друга, но на них больше никто не ссылается. Найдёт ли их garbage collector?
Готов ли ты посещать офис раз в месяц (Москва)?
Как правильно катить миграции БД без сбоев? Как удалять поля?
Доводилось ли вам самому реализовывать Generic классы?
Проблемы при деплое: ошибки возникают во время деплоя и исчезают после. Почему?
Можете привести пример задачи, где вы самостоятельно решали задачи с многопоточностью?
Рассматривались ли другие механизмы получения статуса документа, кроме постоянного поллинга (например, WebSocket или Server-Sent Events)?
С какими версиями Java работали?
Есть ли опыт работы с брокерами сообщений? С какими именно?
Что такое индексы в реляционных БД, когда помогают и когда мешают?
Были ли многопоточные кейсы на проекте? Data race, deadlock?
@PutMapping("/create") public Book create(@RequestBody CreateBook request) throws Exception { System.out.println("Check if book exists " + map); Book book = new ObjectMapper().convertValue(map, Book.class); Book b = repo.findByTitle(book.getTitle()); if (b != null) { throw new Exception("Book already exists"); } book.setId(UUID.randomUUID().toString()); repo.save(book); log.debug("Book {} by {} is created with id {}", book.getTitle(), book.getAuthor(), book.getId()); return book; } @GetMapping("/get") public Book get(@QueryParam("id") String id) { log.debug("Get book " + id); return repo.findAll().stream() .filter(b -> b.getId().equals(id)) .findFirst().get(); } @GetMapping("/{id}") public Book get(@RequestParam("id") String id) { log.debug("Get book ", id); return repo.findById(id).orElseThrow(() -> new BookAlreadyExeption("book not find")) findAll().stream() .filter(b -> b.getId().equals(id)) .findFirst().get(); }
Какие GoF-паттерны ты знаешь?