Ποιοι τύποι ευρετηρίων υπάρχουν στα συστήματα διαχείρισης βάσεων δεδομένων SQL;
Java
Εξηγήστε τη λειτουργία της μεθόδου αισιόδοξης κλειδώματος στη διαχείριση ταυτόχρονου πρόσβασης σε δεδομένα.
Τι μπορεί να οδηγήσει σε επιδείνωση της απόδοσης της εκτέλεσης μιας λειτουργίας;
Έχετε εμπειρία στην αλληλεπίδραση με προμηθευτές δεδομένων ή πόρων;
Μπορείτε να εξηγήσετε την έννοια του Stream API στη Java και πώς χρησιμοποιείται για την επεξεργασία δεδομένων;
Ποια είναι τα πλεονεκτήματα και τα μειονεκτήματα της χρήσης δεικτών για μεμονωμένες στήλες σε μια βάση δεδομένων;
Μπορούν οι κυκλικές εξαρτήσεις να οδηγήσουν σε διαρροές μνήμης σε ένα πρόγραμμα;
Πώς να μάθετε το εκτελεσμένο ερώτημα SQL στο PostgreSQL;
Γιατί εμφανίζεται μια εξαίρεση ConcurrentModificationException όταν τροποποιούμε ταυτόχρονα ένα ArrayList κατά τη διάρκεια της επανάληψης;
Διαβάστε τον κώδικα και επισημάνετε τα λάθη /** * Ένας πελάτης με αγοράσει εισιτήριο μπορεί, με επιπλέον χρέωση, να επιλέξει συγκεκριμένη θέση. * Η βασική τιμή των θέσεων καθορίζεται από τις τιμές (εξωτερική υπηρεσία). * Για πελάτες με συγκεκριμένες τιμές (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 κωδικός θέσης (π.χ. 19A) * @param ticketId ID εισιτηρίου */ @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; }
Με ποιους τρόπους μπορείς να αυξήσεις την ταχύτητα εκτέλεσης αυτής της μεθόδου;
Τι ενέργειες θα λάβεις αν αυξηθεί το φορτίο στο σύστημα και οι καθυστερήσεις στην εκτέλεση ερωτημάτων στη βάση δεδομένων γίνουν σημαντικές;
Μπορείτε να απαριθμήσετε τις βασικές μεθόδους που παρέχει το API Stream στη Java;
Μπορείτε να εξηγήσετε τι εννοείται με τον ατομικό τύπο δεδομένων;
Ποια μέθοδοι μπορούν να χρησιμοποιηθούν για να αυξήσουν την ταχύτητα αναζήτησης σε έναν πίνακα;
Μπορείτε να εξηγήσετε την αρχή λειτουργίας του απαισιόδοξου κλειδώματος και πώς διαφέρει από μια άλλη στρατηγική κλειδώματος;
Μπορείτε να εξηγήσετε πώς είναι δομημένη η δομή κληρονόμησης εξαιρέσεων στη γλώσσα προγραμματισμού;
Εξηγήστε την έννοια της διαγραφής τύπου και τον κύριο σκοπό της στον προγραμματισμό.
Πώς πραγματοποιείται η ρύθμιση και η εγγραφή Bean στο πλαίσιο του Spring Framework;
Υπάρχουν λειτουργίες, η εκτέλεση των οποίων αποκλείεται εντός των συναλλαγών;