Dacă ai proiecta un GC, ce abordări de colectare a gunoiului cunoști în afară de parcurgerea graficului de accesibilitate?
Java
Ce este un deadlock? În ce diferență este față de o condiție de cursă? Cum se poate evita un deadlock, chiar dacă nu este posibil să se determine în prealabil ordinea de captare a lock-urilor?
Implementați RecommenderService cu metodele getTop(User user, int limit) și addDocument(Document document), folosind stocare în memorie
Cât cântărește un pointer? Ce este asta?
La ce folosește stiva și la ce folosește heap-ul? Care este diferența?
De ce testul a picat cu NullPointerException și cum se remediază?
Ce este heap-ul?
Cum are loc eliminarea obiectelor din heap în Java? Vorbește despre Garbage Collector.
Comparați performanța următoarelor fragmente de cod care copiază elemente dintr-un array de Integer într-un array de int și vice versa, inclusiv cazul în care sunt create obiecte Integer noi din valori 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]); } } ``` Analizați și explicați diferențele de performanță și comportament între aceste abordări.
Ce principiu SOLID este încălcat în implementarea actuală, unde serviciul este strâns legat de o implementare specifică de stocare (ArrayList)?
Ce metode de comunicare între procese (IPC) cunoști la nivelul interfețelor sistemului de operare Unix?
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]); } }
Ce problemă poate apărea într-un mediu de producție cu acces multi-thread la serviciu (mai multe solicitări REST simultane)?
La ce folosește synchronized? Ce ai folosi pentru a implementa un contor sigur pentru fire în loc de synchronized?
Cum apare un primitiv în stivă și cum în heap?
Care sunt dezavantajele abordării actuale de sortare a întregii liste la fiecare apel al funcției getTop?
/** * Căutarea a două numere într-un array a căror sumă este egală cu un număr dat * <p> * Scrieți o funcție care acceptă ca primul argument un array de numere pozitive nesortate * și ca al doilea argument un număr pozitiv. Funcția trebuie să returneze true dacă în array * există 2 numere a căror sumă dă al doilea argument. * <p> * Intrare: ([10, 15, 3, 7], 17) * Ieșire: true */
Cum să implementați corect dependențele (Dependency Injection) într-un serviciu — care abordare este preferată?
Decifrați abrevierea ACID și explicați fiecare proprietate.
Ce este apelul de sistem fork în sistemele de operare din familia Unix?