Quais são as principais tarefas resolvidas pelo framework Spring no desenvolvimento de aplicações?
Java
Que tipos de índices existem nos sistemas de gestão de bases de dados SQL?
Já utilizou a construção SELECT em operações de atualização de dados (UPDATE)?
Pode explicar a conceito de Stream API em Java e como ela é usada para processar dados?
Podem as dependências cíclicas levar a vazamentos de memória num programa?
O que pode levar a uma diminuição do desempenho na execução de uma função?
Leia o código e destaque os erros /** * Um cliente com um bilhete comprado pode, por uma taxa adicional, escolher um lugar específico. * O preço base dos lugares é determinado por tarifas (serviço externo). * Para clientes com tarifas específicas (PREMIUM, ULTRA), deve ser concedido um desconto no pagamento. * Ao reservar, é emitida uma fatura para pagamento. A gestão do pagamento é feita em um serviço externo. */ @Service public class SeatBookingService { @Autowired private SeatBookingRepository seatBookingRepository; @Autowired private TicketRepository ticketRepository; @Autowired private TariffClient tariffClient; @Autowired private CustomerClient customerClient; @Autowired private PaymentClient paymentClient; /** * Reserva. * @param seatCode código do lugar (por exemplo 19A) * @param ticketId ID do bilhete */ @Transactional public void bookSeat(String seatCode, UUID ticketId) { var ticket = ticketRepository.findById(ticketId); //reservamos var seatBooking = new SeatBooking(seatCode, ticket.get().getFlightId(), ticketId, BookingStatus.BOOKED); seatBookingRepository.save(seatBooking); //procuramos a tarifa base para o lugar no avião var basePrice = tariffClient.getBasePrice(ticket.get().getPlaneModel(), seatCode); //procuramos dados do cliente Long userId = (Long) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); var userData = customerClient.getCustomer(userId); System.out.println("Encontrado utilizador " + userData.getFio() + " número do documento " + userData.getDocument()); var price = basePrice; if (userData.getTariff() == "PREMIUM") { //desconto de 50% price = basePrice * 0.5d; } if (userData.getTariff() == "ULTRA") { //desconto de 20% price = basePrice * 0.8d; } var invoice = new Invoice(price, ticketId, userId); //emite a fatura paymentClient.sendInvoice(invoice); System.out.println("Fatura emitida"); } @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; }
Que passos vais tomar para determinar as causas dos reinícios regulares do serviço relacionados com o erro OutOfMemoryError?
Tem experiência em interagir com fornecedores de dados ou recursos?
Por que ocorre uma exceção ConcurrentModificationException ao modificar simultaneamente um ArrayList durante a iteração?
Pode explicar o que se entende por tipo de dado atômico?
Mecanismo de funcionamento do operador SELECT FOR UPDATE em bases de dados e seu papel na gestão do acesso concorrente
A entrada relacionada é removida automaticamente da tabela filha se a chave relacionada for removida da tabela pai?
Que ações tomarias se, com o aumento da carga no sistema, os atrasos na execução de consultas à base de dados se tornarem significativos?
De que maneiras podes aumentar a velocidade de execução deste método?
Quais métodos podem ser usados para aumentar a velocidade de pesquisa numa tabela?
Podes enumerar os principais métodos fornecidos pela API Stream em Java?
O que distingue uma abordagem otimista às bloqueios de uma abordagem pessimista no contexto da gestão de concorrência em bancos de dados?
Pode explicar como é estruturada a hierarquia de herança de exceções na linguagem de programação?
Explique o conceito de eliminação de tipos e qual é o seu principal propósito na programação.