Чем GoF-паттерн Mediator отличается от Proxy?
Реализуй CompositeIterator с использованием дженериков, который объединяет два итератора одного типа
Какую коллекцию выбрать: ArrayList или LinkedList и почему?
Будет ли проблема производительности при использовании Stream API с filter, map и findAny на коллекции из миллиона элементов, если нужен только один объект?
Как обычно ты прописываешь промпты?
В каких задачах вы использовали AI-агентов?
Чем отличается onErrorResume от onErrorReturn?
Что такое JPA и Hibernate, в чём разница?
В чём разница между Rate Limiter в Spring Cloud Gateway и в Istio?
В чём разница между аннотациями @Repository и @Component в Spring?
Помнишь ли какие есть виды кластеров в MongoDB и в чём разница?
Как удалить элемент из списка во время итерации по нему?
Расскажи про дженерики в Java, сталкивался ли с wildcard-ами
Приходилось ли оптимизировать работу с базой данных или запросы?
Какой общий стаж Java-разработки?
Что такое промежуточные и терминальные операторы в Stream? Приведите примеры.
Какой проект вы считаете наиболее значимым для себя и почему?
Прочитайте код и подсветите ошибки /** * Клиент с купленным билетом может за дополнительную плату выбрать конкретное место. * Базовая цена мест определяется тарифами (внешним сервисом). * Для клиентов с определенными тарифами (PREMIUM, ULTRA) необходимо сделать скидку при оплате. * При бронировании клиенту выставляется инвойс на оплату. Управление оплатой осуществляется в стороннем сервисе. */ @Service public class SeatBookingService { @Autowired private SeatBookingRepository seatBookingRepository; @Autowired private TicketRepository ticketRepository; @Autowired private TariffClient tariffClient; @Autowired private CustomerClient customerClient; @Autowired private PaymentClient paymentClient; /** * Бронирование. * @param seatCode код места (например 19А) * @param ticketId ид билета */ @Transactional public void bookSeat(String seatCode, UUID ticketId) { var ticket = ticketRepository.findById(ticketId); //бронируем var seatBooking = new SeatBooking(seatCode, ticket.get().getFlightId(), ticketId, BookingStatus.BOOKED); seatBookingRepository.save(seatBooking); //ищем базовый тариф для выбранного места в самолете var basePrice = tariffClient.getBasePrice(ticket.get().getPlaneModel(), seatCode); //ищем данные о клиенте Long userId = (Long) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); var userData = customerClient.getCustomer(userId); System.out.println("Найден пользователь " + userData.getFio() + " номер документа " + userData.getDocument()); var price = basePrice; if (userData.getTariff() == "PREMIUM") { //скидка 50% price = basePrice * 0.5d; } if (userData.getTariff() == "ULTRA") { //скидка 20% price = basePrice * 0.8d; } var invoice = new Invoice(price, ticketId, userId); //выставляем платежку paymentClient.sendInvoice(invoice); System.out.println("Счет выставлен"); } @Data @Table("seat_booking") public class SeatBooking { @Column private String seatCode; @Column private UUID flightId; @Column private UUID ticketId; @Column private BookingStatus status; } public enum BookingStatus { BOOKED, PAID; }
Что за паттерн реализован в цепочке FileInputStream → BufferedInputStream → InputStreamReader → BufferedReader?
Можете представить задачу, где бы не использовали Spring?