Sobes.tech

Αν σχεδιάζατε ένα GC, ποιες προσεγγίσεις συλλογής απορριμμάτων γνωρίζετε εκτός από τη διαδρομή του γράφου προσβασιμότητας;

Senior
280

Τι είναι το deadlock; Πώς διαφέρει από μια κατάσταση αγώνα; Πώς να αποφύγετε το deadlock, ακόμη και αν δεν είναι δυνατόν να προσδιορίσετε τη σειρά κατάκτησης των κλειδώσεων εκ των προτέρων;

Senior
273

Υλοποιήστε το RecommenderService με τις μεθόδους getTop(User user, int limit) και addDocument(Document document), χρησιμοποιώντας αποθήκευση στη μνήμη

Senior
220

Πόσο ζυγίζει ένας δείκτης; Τι είναι αυτό;

Senior
201

Γιατί χρειάζεται η στοίβα και γιατί χρειάζεται το σωρό; Ποια είναι η διαφορά;

Senior
190

Γιατί το τεστ απέτυχε με NullPointerException και πώς το διορθώνουμε;

Senior
188

Τι είναι το heap;

Senior
188

Πώς γίνεται η διαγραφή αντικειμένων από το heap στην Java; Μίλησε για τον Garbage Collector.

Senior
179

Συγκρίνετε την απόδοση των ακόλουθων αποσπασμάτων κώδικα που αντιγράφουν στοιχεία από έναν πίνακα 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]); } } ``` Αναλύστε και εξηγήστε τις διαφορές στην απόδοση και τη συμπεριφορά μεταξύ αυτών των προσεγγίσεων.

Senior
173

Ποια αρχή SOLID παραβιάζεται στην τρέχουσα υλοποίηση, όπου η υπηρεσία είναι στενά συνδεδεμένη με μια συγκεκριμένη υλοποίηση αποθήκευσης (ArrayList);

Senior
166

Ποιους τρόπους επικοινωνίας μεταξύ διεργασιών (IPC) γνωρίζετε σε επίπεδο διεπαφών του λειτουργικού συστήματος Unix;

Senior
166

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]); } }

Senior
161

Γιατί χρειάζεται το synchronized; Τι θα χρησιμοποιούσες για να υλοποιήσεις έναν ασφαλή με νήματα μετρητή αντί για synchronized;

Senior
159

Ποιο πρόβλημα μπορεί να προκύψει σε ένα περιβάλλον παραγωγής με πολυνηματική πρόσβαση στην υπηρεσία (πολλαπλά παράλληλα αιτήματα REST);

Senior
157

Ποια είναι τα μειονεκτήματα της τρέχουσας προσέγγισης με την ταξινόμηση ολόκληρης της λίστας σε κάθε κλήση του getTop;

Senior
155

Πώς εμφανίζεται ένα primitive στη στοίβα και πώς στο σωρό;

Senior
155

/** * Αναζήτηση δύο αριθμών σε έναν πίνακα των οποίων το άθροισμα είναι ίσο με έναν δοσμένο αριθμό * <p> * Γράψτε μια συνάρτηση που δέχεται ως πρώτο όρισμα έναν πίνακα μη ταξινομημένων θετικών αριθμών * και ως δεύτερο όρισμα έναν θετικό αριθμό. Η συνάρτηση πρέπει να επιστρέφει true αν στον πίνακα * υπάρχουν 2 αριθμοί των οποίων το άθροισμα δίνει το δεύτερο όρισμα. * <p> * Είσοδος: ([10, 15, 3, 7], 17) * Έξοδος: true */

Senior
154

Πώς να ενσωματώσετε σωστά τις εξαρτήσεις (Dependency Injection) σε μια υπηρεσία — ποια προσέγγιση είναι προτιμότερη;

Senior
153

Ανάλυσε το ακρωνύμιο ACID και εξήγησε κάθε ιδιότητα.

Senior
152

Τι είναι η κλήση συστήματος fork στα λειτουργικά συστήματα της οικογένειας Unix;

Senior
150
/2