Ak by ste navrhovali GC, aké prístupy ku zberu odpadu poznáte okrem prechodu grafu dostupnosti?
Java
Čo je deadlock? V čom sa líši od race condition? Ako sa vyhnúť deadlocku, aj keď nie je možné vopred určiť poradie získavania zámkov?
Implementujte RecommenderService s metodami getTop(User user, int limit) in addDocument(Document document), z uporabo pomnilniškega shranjevanja
Koľko váži ukazovateľ? Čo je to?
Na čo je potrebný zásobník a na čo je potrebný halda? Aký je rozdiel?
Prečo test zlyhal s NullPointerException a ako to opraviť?
Čo je to heap (heap)?
Ako v Jave dochádza k odstraňovaniu objektov z heapu? Porozprávaj o Garbage Collector.
Porovnajte výkon nasledujúcich fragmentov kódu, ktoré kopírujú prvky z poľa Integer do poľa int a naopak, vrátane prípadu, keď sú vytvárané nové objekty Integer z hodnôt 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]); } } ``` Analyzujte a vysvetlite rozdiely v výkonu a správaní medzi týmito prístupmi.
Ktoré princípy SOLID sú porušené v aktuálnej implementácii, kde je služba pevne viazaná na konkrétnu implementáciu úložiska (ArrayList)?
Aké spôsoby komunikácie medzi procesmi (IPC) poznáte na úrovni rozhraní operačného systému 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]); } }
Na čo je potrebný synchronized? Čo by si použil na implementáciu vlákno-bezpečného počítadla namiesto synchronized?
Aký problém môže nastať v produkčnom prostredí pri viacvláknovom prístupe ku službe (viaceré REST požiadavky súčasne)?
Aké sú nevýhody súčasného prístupu s triedením celého zoznamu pri každom volaní getTop?
Ako sa primitiv objaví na zásobníku a ako na halde?
/** * Vyhľadávanie dvoch čísel v poli, ktorých súčet je rovný zadanému číslu * <p> * Napíšte funkciu, ktorá ako prvý argument prijíma pole nestriedených kladných čísel * a ako druhý argument kladné číslo. Funkcia by mala vrátiť true, ak v poli * sú 2 čísla, ktorých súčet dáva druhý argument. * <p> * Vstup: ([10, 15, 3, 7], 17) * Výstup: true */
Ako správne implementovať závislosti (Dependency Injection) v službe — aký prístup je preferovaný?
Rozlúšti skratku ACID a vysvetli každú vlastnosť.
Čo je systémový volan fork v operačných systémoch rodiny Unix?