Java
Come gestisci il lavoro con le query dinamiche in Spring Data JPA?
Hai utilizzato la costruzione SELECT nelle operazioni di aggiornamento dei dati (UPDATE)?
La struttura dati HashMap ha un ordine prevedibile degli elementi?
È possibile combinare un compito grande e complesso con alcuni più piccoli all'interno di un team?
Puoi spiegare la differenza tra polimorfismo e astrazione nella programmazione orientata agli oggetti?
La struttura dati elabora una lista con la possibilità di attraversarla in entrambe le direzioni o solo in una?
Leggere il codice e evidenziare gli errori /** * Un cliente con un biglietto acquistato può, a pagamento, scegliere un posto specifico. * Il prezzo base dei posti è determinato dai tariffe (servizio esterno). * Per i clienti con tariffe specifiche (PREMIUM, ULTRA), è necessario applicare uno sconto al pagamento. * Durante la prenotazione, viene emessa una fattura per il pagamento. La gestione del pagamento avviene tramite un servizio esterno. */ @Service public class SeatBookingService { @Autowired private SeatBookingRepository seatBookingRepository; @Autowired private TicketRepository ticketRepository; @Autowired private TariffClient tariffClient; @Autowired private CustomerClient customerClient; @Autowired private PaymentClient paymentClient; /** * Prenotazione. * @param seatCode codice del posto (ad esempio 19A) * @param ticketId ID del biglietto */ @Transactional public void bookSeat(String seatCode, UUID ticketId) { var ticket = ticketRepository.findById(ticketId); //prenotiamo var seatBooking = new SeatBooking(seatCode, ticket.get().getFlightId(), ticketId, BookingStatus.BOOKED); seatBookingRepository.save(seatBooking); //cerchiamo la tariffa base per il posto sull'aereo var basePrice = tariffClient.getBasePrice(ticket.get().getPlaneModel(), seatCode); //cerchiamo i dati del cliente Long userId = (Long) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); var userData = customerClient.getCustomer(userId); System.out.println("Utente trovato " + userData.getFio() + " numero documento " + userData.getDocument()); var price = basePrice; if (userData.getTariff() == "PREMIUM") { //sconto del 50% price = basePrice * 0.5d; } if (userData.getTariff() == "ULTRA") { //sconto del 20% price = basePrice * 0.8d; } var invoice = new Invoice(price, ticketId, userId); //emetti la fattura paymentClient.sendInvoice(invoice); System.out.println("Fattura emessa"); } @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; }
Quali tipi di injection di dipendenza conosci?
Se chiamo il metodo toList() su uno Stream, il risultato sarà un ArrayList o un altro tipo di collezione?
Potresti spiegare cosa significa l'acronimo SLF4J e come viene utilizzato nei progetti Java?
Perché è importante applicare le proprietà ACID quando si lavora con le transazioni in un database?
L'interfaccia Runnable può essere considerata come un'interfaccia per l'esecuzione di compiti in Java?
Qual è la differenza tra i metodi equals e hashCode in Java?
Può spiegare il concetto di algoritmi senza blocco e le loro differenze rispetto ad altri metodi di sincronizzazione?
Quali sono le principali differenze tra LinkedList e ArrayList in Java?
Qual è la tua esperienza nello sviluppo di interfacce basate su funzioni o funzioni come componente principale?
Quale approccio di autenticazione e autorizzazione è implementato in Spring Security nel tuo progetto?
È possibile creare un comportamento personalizzato per il costruttore in una classe derivata sovrascrivendolo?
Cos'è l'interfaccia AutoCloseable e come funziona la costruzione try-with-resources in Java?
Come si può specificare una versione particolare di una dipendenza transitiva nel file di configurazione di Gradle?