Java
Il compito è stato formulato come "ridurre la latenza" e hai cercato tu stesso la soluzione?
Hai mai ricoperto il ruolo di lead delle funzionalità?
Come funziona l'abbinamento Kafka + Redis sorted set + scheduler esterno per le notifiche ritardate?
Quali raccoglitori di spazzatura (Garbage Collectors) conosci in Java? Ci sono raccomandazioni sull'uso di diversi tipi?
Hai esperienza con prodotti AI/ML?
Cosa è preferibile in pila?
Parlami del processo di sviluppo (Agile/Scrum). Come vengono valutate le attività?
7. Stai testando il modulo di aggiunta di nuovi prodotti nel pannello di amministrazione. Crei un nuovo prodotto, clicchi sul pulsante Salva e vedi uno schermo bianco vuoto. Descrivi le tue azioni successive.
Quali sono i due principali tipi di operazioni nell'API Stream?
Hai mai lavorato con Spring Data e Hibernate? Quali problemi di prestazioni hai risolto?
Fornisci un esempio in cui non è necessario utilizzare un'architettura a microservizi e indica un paio di motivi.
Per quali compiti sarebbe adatto Istio?
Implementa una cache LRU con sostituzione di valori vecchi (implementazione di base)
Quali argomenti Kafka saranno nel sistema di report, chi produce e chi consuma?
Scrivi una query SQL: seleziona i titoli di tutti i libri con più di tre autori.
È possibile usare volatile per una variabile long e in quali scenari è sicuro farlo?
/** * Interfaccia per interagire con l'hardware del bancomat. */ interface Hardware { /** * Restituisce un array con il numero di banconote per denominazioni 50, 100, 500, 1000, 5000. * Il metodo funziona lentamente e genera rumore. * * @return array in cui ogni elemento corrisponde al numero di banconote di una denominazione specifica. * Ad esempio, [10, 20, 30, 40, 50] significa: * - 10 banconote da 50 rubli * - 20 banconote da 100 rubli * - 30 banconote da 500 rubli * - 40 banconote da 1000 rubli * - 50 banconote da 5000 rubli */ int[] getBillsCounts(); /** * Carica nella cassa le banconote indicate. * * @param billsCounts array con il numero di banconote per denominazioni [50, 100, 500, 1000, 5000]. * Ad esempio, [0, 1, 0, 2, 0] significa: * - 0 banconote da 50 rubli * - 1 banconota da 100 rubli * - 0 banconote da 500 rubli * - 2 banconote da 1000 rubli * - 0 banconote da 5000 rubli */ void giveBills(int[] billsCounts); } /** * Classe per implementare la logica del bancomat. * Qui si deve scrivere il codice */ class MyATM { /** * Hardware del bancomat. */ Hardware hardware; public boolean withdraw(int amount) { int[] counts = hardware.getBillsCounts(); int[] nom = {50, 100, 500, 1000, 5000}; int[] toGive = new int[5]; for (int i = 4; i >= 0; i--) { int needed = amount / nom[i]; int use = Math.min(needed, counts[i]); toGive[i] = use; amount -= use * nom[i]; } if (amount != 0) { return false; } hardware.giveBills(toGive); return true; } }
Quando applicare il principio di Inversione delle Dipendenze e quando no (relazione con YAGNI)
Quali scope ci sono in Spring? Cos'è lo scope singleton?
Parla del teorema CAP. Cos'è e a cosa serve?