Java
Ποιες κλάσεις ρύθμισης κοντέινερ μπορείς να αναφέρεις;
Είναι αρκετό για την ασφάλεια πολλαπλών νημάτων αν στην κλάση υπάρχουν δύο πεδία με ένα invariance (το ένα είναι αυστηρά μικρότερο από το άλλο), καθένα προστατευμένο από AtomicInteger;
Πώς διασφαλίζετε μια κατανεμημένη συναλλαγή σε πολλαπλές υπηρεσίες;
Έχετε εμπειρία στη χρήση ουρών στα έργα σας;
Μπορείς να δώσεις ένα παράδειγμα χρήσης ενός στατικού μπλοκ στον κώδικα;
Πρέπει να διαχωρίζουμε τους πίνακες σε μέρη (sharding) για να αυξήσουμε την ταχύτητα εκτέλεσης των ερωτημάτων;
Ποια είναι τα πλεονεκτήματα και τα μειονεκτήματα της χρήσης του Protocol Buffer για σειριοποίηση δεδομένων;
Χαρακτηριστικά της χρήσης του @Transactional στο Spring. Επίπεδα απομόνωσης συναλλαγών.
Πείτε μας πώς οργανώθηκε η διαδικασία ανάπτυξης στον προηγούμενο χώρο εργασίας σας — από την επιχειρηματική ανάγκη μέχρι την κυκλοφορία.
Πώς υλοποιείται η υποστήριξη συναλλαγών με τη χρήση της σημείωσης @Transactional στο Spring Framework;
Έχετε εργαστεί με την ενσωμάτωση του Spring Data και Hibernate στα έργα σας;
Πότε και πώς καλούνται οι στατικές συναρτήσεις: από ένα αντικείμενο ή από μια κλάση;
Έχετε εμπειρία στη χρήση της μεθόδου parallel στο API Stream για παράλληλη επεξεργασία δεδομένων;
Πώς καθορίζεται η περιοχή ορατότητας του αντικειμένου Bean υπό προεπιλεγμένες συνθήκες;
Μπορείτε να εξηγήσετε τον μηχανισμό λειτουργίας της σημείωσης @SpringBootTest στις δοκιμές Spring Boot;
Ποιες προσεγγίσεις υπάρχουν για να αντιμετωπίσετε μια ασταθή ενσωμάτωση που μπορεί να μην απαντάει από ένα λεπτό έως μια ημέρα;
Ποια είναι η διαφορά στην απόδοση μεταξύ της χρήσης primitive τύπων δεδομένων και των αντικειμενικών περιτυλίγματων τους;
Συγκρίνετε την απόδοση των ακόλουθων αποσπασμάτων κώδικα που αντιγράφουν στοιχεία από έναν πίνακα Integer σε έναν πίνακα int και το αντίστροφο, συμπεριλαμβανομένης της περίπτωσης όπου δημιουργούνται νέα αντικείμενα Integer από τιμές int: ```java int SIZE = 1000000; int[] x = new int[SIZE]; Integer[] y = new Integer[SIZE]; for (;;) { for (int i = 0; i < SIZE; ++i) { x[i] = y[i]; } } ``` ```java int SIZE = 1000000; int[] x = new int[SIZE]; Integer[] y = new Integer[SIZE]; for (;;) { for (int i = 0; i < SIZE; ++i) { y[i] = x[i]; } } ``` ```java int SIZE = 1000000; int[] x = new int[SIZE]; Integer[] y = new Integer[SIZE]; for (;;) { for (int i = 0; i < SIZE; ++i) { y[i] = new Integer(x[i]); } } ``` Αναλύστε και εξηγήστε τις διαφορές στην απόδοση και τη συμπεριφορά μεταξύ αυτών των προσεγγίσεων.
Χρησιμοποιήσατε στο έργο σας το συστατικό ExecutorService για τη διαχείριση νημάτων;
Πώς γίνεται η διαχείριση εξαιρέσεων κατά την εκτέλεση των ροών Stream σε Java;